Я пытался создать обзор фильма в Джанго для задания, и в настоящее время я работаю над этой функцией. Кажется, я не понимаю, почему он не распознает URL, который я передаю.
Я попытался удалить жестко закодированный URL, как показано в учебном руководстве по Django на сайте платформы, но это не устраняет ошибку. прочь.
Вот выдержка из urls.py:
urlpatterns = [
url(r'^$', views.index, name="index"),
path('movie=<int:movie_id>&user=<int:user_id>/', views.movie, name='movie'),
path('ratings/', views.ratings, name='movie'),
path('rating/<int:movie_id>/', views.rating, name='movie'),
path('movie=<int:movie_id>&user=<int:user_id>/vote/', views.vote, name='vote'),
path('register/',views.register, name='register'),
]
Это мой просмотр фильма (должен представить фильм и радио с рейтингом звезды, чтобы пользователь мог оценить фильм),где URL создается и передается в HTML:
def movie(request,movie_id,user_id):
movie = get_object_or_404(Movie, pk=movie_id)
voteURL = '/polls/movie=' + str(movie_id) + '&user='+str(user_id)+'/vote/'
context = {
'mymoviecaption':movie.Title,
'moviePoster': 'https://image.tmdb.org/t/p/original'+tmdb.Movies(movie.TMDBID).images().get('posters')[0].get('file_path'),
'myrange': range(10,0,-1),
'myuserid':user_id,
'voteurl': voteURL,
'mymovieid':movie_id
}
#print(nextURL)
translation.activate('en')
return HttpResponse(render(request, 'movieview.html', context=context))
Отрывок HTML, где вызывается представление голосования:
<form action="{% url voteurl %}" method="post">
{% for i in myrange %}
<input id="star-{{i}}" type="radio" name="rating" value={{i}}>
<label for="star-{{i}}" title="{{i}} stars">
<i class="active fa fa-star" aria-hidden="true"></i>
</label>
{% endfor %}
<input type="submit">Vote!</input>
</form>
Представление голосования (следует сохранить в базе данных и перенаправить наследующий фильм пока не сохраняется в базе данных, потому что я не хотел загромождать его записями, пока не буду уверен, что функция заработала):
def vote(request, movie_id,user_id):
try:
nextmovie=get_object_or_404(Movie, pk=movie_id+1)
nextURL = '/polls/movie=' + str(movie_id + 1) + '&user='+str(user_id)+'/'
except Http404:
nextURL = '/polls/ratings'
try:
myrating = int(request.POST['rating'])
print(myrating)
except:
# Redisplay the question voting form.
return render(request, '/polls/movie=' + str(movie_id + 1) + '&user='+str(user_id)+'/', {
'error_message': "You didn't select a choice.",
})
return HttpResponseRedirect(nextURL)
Неважно, что я пытаюсь,Я получаю NoReverseMatch по адресу / polls / movie = 1 & user = 9 / всякий раз, когда пытаюсь загрузить первую страницу фильма, несмотря на то, что указанный URL-адрес определен в urlpatterns.