【问题标题】:Django Reverse for 'setrefresh' not found. 'setrefresh' is not a valid view function or pattern name没有找到 'setrefresh' 的 Django Reverse。 'setrefresh' 不是有效的视图函数或模式名称
【发布时间】:2021-02-01 14:21:27
【问题描述】:

我有一个网页,在这个网页上我有一个按钮。我正在尝试获取它,以便当用户单击此按钮时,它将调用 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'),
]

目录树

【问题讨论】:

  • 可以直接分享你的tree吗?

标签: html python-3.x django function view


【解决方案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%}

【讨论】:

    猜你喜欢
    • 2021-08-07
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 2018-01-25
    • 2019-06-27
    相关资源
    最近更新 更多