#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:
- Добавьте 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'),
]
- Упоминание в 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%}