Файл My shop / views.py - файл приложения
из django .shortcuts import render, get_object_or_404
from django .http import HttpResponse, HttpResponseRedirect
из django .template import loader
from django .http import Http404
from .models import Album
from django .urls import reverse
Создайте здесь свои просмотры.
def index (request): all_albums = Album.objects.all ()
context = {'all_albums': all_albums}
14 return render (request, 'shop / index. html ', context)
return HttpResponseRedirect (reverse ("shop: index", args = (album.id,)))
# return HttpResponseRedirect (request, reverse ("shop : index ", args = (album_id)), context)
def detail (request, album_id):
album = get_object_or_404(Album, id=album_id)
return render(request, 'shop/detail.html', {'album':album})
def избранное (request, album_id):
album = get_object_or_404(Album, id=album_id)
try:
selected_song = album.song_set.get(id=request.POST['song'])
except (KeyError, Song.DoesNotExist):
return render(request, 'shop/detail.html', { 'album':album,
'error_message':"you did not select a valid song"})
else:
selected_song.is_favourite = True
selected_song.save()
return HttpResponseRedirect(reverse("shop:index", args=(album.id,)))
Теперь мой файл shop / URLs.py
из django .urls путь импорта
из. импорт просмотров
app_name = 'shop'
urlpatterns = [path ('', views.index, name = "ShopHome"),
path("<int:album_id>/", views.detail, name='detail'),
path("shop/<int:album_id>/favourite", views.favourite, name='favourite'),
]
Теперь мой файл Mac / URLs.py - файл проекта
из django .contrib import admin
из django путь импорта .urls, включая
urlpatterns = [путь ('admin /', admin.site.urls),
path('shop/', include('shop.urls')),
]
Теперь мой магазин / templates / shop / index. HTML файл
{% нагрузки c%}
<div class="navbar-header">
<a class="navbar-brand" href="{% url 'shop:index' album_id %}">Viberr</a>
<div/>
Вот все мои альбомы:
{% for album in all_albums %}
<li><a href="{% url 'shop:detail' album.id %}">{{ album.album_title }}</a></li>
{% endfor %}
Ошибка находится в строке 14 в соответствии с ошибкой на локальном хосте: 8000