Обратный Django для ‘setrefresh’ не найден. ‘setrefresh’ не является допустимой функцией просмотра или именем шаблона

#html #python-3.x #django #function #view

#HTML #python-3.x #django #функция #Вид

Вопрос:

У меня есть веб-страница, и на этой веб-странице у меня есть кнопка. Я пытаюсь сделать так, чтобы, когда пользователь нажимает эту кнопку, он вызывал конечные точки API и обновлял созданную мной модель базы данных.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, на данный момент я полностью потерян.

sets.html

 {% block content %}
  <div class="background card">
    <div class="card-body">
      <button class="btn" id="setRefresh" style="border: 1px solid #555555; color: #555555" onclick="location.href={% url 'setrefresh' %}"><i class="fas fa-sync"></i></button>
    </div>
  </div>
{% endblock%}
  

views.py

 def sets(request):
    return render(request,
                  "main/sets.html",
                  {"Sets": Set.objects.all})


def setrefresh(request):
    try:
        response = requests.request("GET", "https://api.scryfall.com/sets")
        data = response.json()
        data = data["data"]
        for entry in data:
            s = Set()
            s.scry_id = entry["id"]
            s.code = entry["code"]
            s.name = entry["name"]
            s.set_type = entry["set_type"]
            s.release_date = entry["released_at"]
            s.card_count = entry["card_count"]
            s.digital_only = entry["digital"]
            s.foil_only = entry["foil_only"]
            s.nonfoil_only = entry["nonfoil_only"]
            s.icon = entry["icon_svg_uri"]
            s.status = 0
            s.save()
        return HttpResponse("ok")
    except Exception:
        return HttpResponseBadRequest()
  

urls.py

 urlpatterns = [
    path('', views.dashboard, name="dashboard"),
    path('sets', views.sets, name="sets"),
    path('cards', views.cards, name="cards"),

    url(r'^setrefresh/', views.setrefresh, name='setrefresh'),
]
  

Дерево каталогов

введите описание изображения здесь

Комментарии:

1. Можете ли вы поделиться своим деревом напрямую?

Ответ №1:

  1. Добавьте app_name в urls.py
 app_name = 'your_app_name'

urlpatterns = [
    path('', views.dashboard, name="dashboard"),
    path('sets', views.sets, name="sets"),
    path('cards', views.cards, name="cards"),

    url(r'^setrefresh/', views.setrefresh, name='setrefresh'),
]

  
  1. Упоминание в Html
 {% block content %}
  <div class="background card">
    <div class="card-body">
      <button class="btn" id="setRefresh" style="border: 1px solid #555555; color: #555555" onclick="location.href={% url 'your_app_name:setrefresh' %}"><i class="fas fa-sync"></i></button>
    </div>
  </div>
{% endblock%}