Параметры в перенаправлении страницы Django - PullRequest
0 голосов
/ 09 июня 2018

У меня есть следующий код в представлениях:

def submit_affective(request):
if request.method == 'POST':
    choice=request.POST['aff_choices']
    urlid=request.POST['url_list']
    url = Url.objects.get(id=urlid)
    aff_result=Affective.objects.create(
        affective=choice, url=url
        )
    return redirect('detail_affective',id=url.id)

def detail_affective(request,id):
boring_count=Affective.objects.filter(affective='Boring',url.id=id).count()
confusing_count=Affective.objects.filter(affective='Confusing',url.id=id).count()
engaging_count=Affective.objects.filter(affective='Engaging',url.id=id).count()
context = {
    'boring_count':boring_count,
    'confusing_count':confusing_count,
    'engaging_count':engaging_count,
}
return render(request,'feedback/detail_affective.html',context)

Я хочу показать количество «скучных», «сбивающих с толку», «вовлеченных» в detail_affective только для того URL, для которого выбор имеетбыл представлен в submit_affective.Пожалуйста, расскажите мне проблему в моем коде.Правильно ли я передаю URL-адрес в detail_affective?И правильный ли мой способ фильтрации?

1 Ответ

0 голосов
/ 09 июня 2018

Вы не можете использовать выражение url.id в качестве аргумента фильтра, просто используйте вместо него url_id:

boring_count=Affective.objects.filter(affective='Boring',url_id=id).count()
confusing_count=Affective.objects.filter(affective='Confusing',url_id=id).count()
engaging_count=Affective.objects.filter(affective='Engaging',url_id=id).count()

Также вам нужно добавить id в качестве аргумента для URL-адреса в urlpattern:

path('detail_affective/<int:id>',views.detail_affective,name='detail_affective')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...