Реверс для 'yourchoice' не найден. 'yourchoice' не является допустимой функцией просмотра или именем шаблона - PullRequest
0 голосов
/ 15 апреля 2020

Я очень новый. Я создал приложение для веб-проекта с django. Я сталкиваюсь со следующей ошибкой

Reverse for 'yourchoice' not found. 'yourchoice' is not a valid view function or pattern name.

Но у меня есть функция в views.py. Это часть views.py

def yourchoice(request, courseId):
    course = get_object_or_404(AllCourses, pk=courseId)
    try:
        selected_ct = course.details_set.get(pk=request.post('[choice]'))
    except (KeyError, AllCourses.DoesNotExist):
        raise render(request, 'technicalCourse/details.html', {
            'choice': choice,
            'error': 'Enter a valid option'
        })
    else:
        selected_ct.choice = True
        selected_ct.save()
        return render(request, 'technicalCourse/details.html', {'courseObj': course})

Это часть html. Я получаю ошибку в теге формы.

<form action="{% url 'technicalCourse:yourchoice' courseId.id %}" method="post">
{% csrf_token %}
{% for choice in courseObj.details_set.all %}
<input type="radio" name="choice" id="choice{{forloop.counter}}" value="{{courseId}}">
<label for="choice{{forloop.counter}}">{{ choice.ct }}</label><br>
{% endfor %}
<input type="submit" value="submit">
</form>

Я также добавил это в urls.py с необходимым импортом

app_name="technicalCourse"

urlpatterns = [
    path('<int:courseId>/',views.details,name='details_page'),
    path('', views.course,name='Home_page'),
    path('<int:courseId>/yourchoice/', views.yourchoice,name='your_choice'),
]

Как решить эту проблему. Заранее спасибо

1 Ответ

0 голосов
/ 15 апреля 2020

Имя вашего URL-адреса your_choice, а не yourchoice. Использование:

{% url 'technicalCourse:your_choice' courseId=courseId.id %}

Я также изменил его, чтобы использовать именованный аргумент, а не позиционный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...