Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 30.10.2018
Сообщений: 12

Не могу найти ошибку NoReverseMatch в Django

01.09.2021, 15:49. Показов 1143. Ответов 0

Студворк — интернет-сервис помощи студентам
Здравствуйте, пожалуйста помогите найти ошибку. Выдает нижеописанную ошибку при отправки формы

NoReverseMatch at /lesson/1/practice/ Reverse for 'theory' with arguments '('',)' not found. 1 pattern(s) tried: ['lesson/(?P<lesson_id>[0-9]+)/theory/$']

Подозревал get_absolute_url в моделях, но без нее выходит та же ошибка. Так же не уверен в правильности использования одновременно CreateView и DetailView (В странице используется форма и одновременно вывод записи из БД), пробовал разделить и вызывать в одном классе, но выходит та же ошибка

urls.py

Python
1
2
3
4
5
6
7
...
url(r'^news/$', News.as_view(), name='news'),
url(r'^aboutus/$', views.aboutus, name='aboutus'),
path(r'lesson/<int:lesson_id>/theory/', Theory.as_view(), name='theory'),
path(r'lesson/<int:lesson_id>/newwords/', Newwords.as_view(), name='newwords'),
path(r'lesson/<int:lesson_id>/practice/', Practice.as_view(), name='practice'),
...
views.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
class Practice(DetailView, CreateView):
model = Lessons
template_name = 'static/practice.html'
context_object_name = 'posts'
pk_url_kwarg = 'lesson_id'
form_class = LessonDone
 
def get_success_url(self):
    return reverse_lazy('practice', kwargs={'lesson_id': self.pk})
 
def get_queryset(self):
    return Lessons.objects.filter(user=self.request.user)
...
models.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class Lessons(models.Model):
theory = models.TextField(blank=True)
words = models.TextField(blank=True)
question1 = models.CharField(max_length=255)
answer1 = models.CharField(max_length=255)
variant11 = models.CharField(max_length=255)
variant21 = models.CharField(max_length=255)
variant31 = models.CharField(max_length=255)
variant41 = models.CharField(max_length=255)
question2 = models.CharField(max_length=255)
answer2 = models.CharField(max_length=255)
variant12 = models.CharField(max_length=255)
variant22 = models.CharField(max_length=255)
variant32 = models.CharField(max_length=255)
variant42 = models.CharField(max_length=255)
question3 = models.CharField(max_length=255)
answer3 = models.CharField(max_length=255)
variant13 = models.CharField(max_length=255)
variant23 = models.CharField(max_length=255)
variant33 = models.CharField(max_length=255)
variant43 = models.CharField(max_length=255)
question4 = models.CharField(max_length=255)
answer4 = models.CharField(max_length=255)
variant14 = models.CharField(max_length=255)
variant24 = models.CharField(max_length=255)
variant34 = models.CharField(max_length=255)
variant44 = models.CharField(max_length=255)
question5 = models.CharField(max_length=255)
answer5 = models.CharField(max_length=255)
variant15 = models.CharField(max_length=255)
variant25 = models.CharField(max_length=255)
variant35 = models.CharField(max_length=255)
variant45 = models.CharField(max_length=255)
done = models.BooleanField(default=False)
user = models.ForeignKey(User, on_delete=models.CASCADE,null=True)
 
class Meta:
    verbose_name = 'Уроки'
    verbose_name_plural = 'Уроки'
 
def __str__(self):
    return str(self.pk)
 
def get_absolute_url(self):
    return reverse('theory', kwargs={'lesson_id' : self.pk})
practice.html

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
{% extends 'static/contacts.html' %}
{% load static %}
{% block lesson %}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font- 
awesome/5.15.3/css/all.min.css"/>
<!-- start Quiz button -->
<div class="start_btn"><button>Начать тест</button></div>
<!-- Info Box -->
<div class="info_box">
    <div class="info-title"><span>Правила теста</span></div>
    <div class="info-list">
        <div class="info">1. У вас есть 15 секунд на каждый вопрос.</div>
        <div class="info">2. Нельзя перевыбрать ответ.</div>
        <div class="info">3. Вы не сможете выбрать ответ, если закончится время.</div>
        <div class="info">4. Тест сбросится, если вы выйдете.</div>
        <div class="info">5. В конце вы получите сумму правильных ответов.</div>
        <div class="info">6. В конце вы получите сумму правильных ответов.</div>
    </div>
    <div class="buttons">
        <button class="quit btn-dark">Выйти</button>
        <button class="restart btn-dark">Продолжить</button>
    </div>
</div>
<!-- Quiz Box -->
<div class="quiz_box">
    <header>
        <div class="title">Ваш тест</div>
        <div class="timer">
            <div class="time_left_txt">Осталось секунд</div>
            <div class="timer_sec">15</div>
        </div>
        <div class="time_line"></div>
    </header>
    <section>
        <div class="que_text">
            <!-- Here I've inserted question from JavaScript -->
        </div>
        <div class="option_list">
            <!-- Here I've inserted options from JavaScript -->
        </div>
    </section>
    <!-- footer of Quiz Box -->
    <footer>
        <div class="total_que">
            <!-- Here I've inserted Question Count Number from JavaScript -->
        </div>
        <button class="next_btn btn-dark">След вопрос</button>
    </footer>
</div>
<!-- Result Box -->
<div class="result_box">
    <div class="icon">
        <i class="fas fa-crown"></i>
    </div>
    <div class="complete_text">Вы прошли тест.</div>
    <div class="score_text">
        <!-- Here I've inserted Score Result from JavaScript -->
    </div>
    <div class="buttons ">
        <button class="restart btn-dark">Перепройти тест</button>
        <form action="" method="POST"> {% csrf_token %}
            {{ form.as_hidden }}
        <button class="quit btn-dark" type="submit" value="Submit">Выйти</button></form>
 
    </div>
</div>
 
<script>
    var question1 = "{{ posts.question1 }}";
    var answer1 = "{{ posts.answer1 }}";
    var variant11 = "{{ posts.variant11 }}";
    var variant21 = "{{ posts.variant21 }}";
    var variant31 = "{{ posts.variant31 }}";
    var variant41 = "{{ posts.variant41 }}";
    var question2 = "{{ posts.question2 }}";
    var answer2 = "{{ posts.answer2 }}";
    var variant12 = "{{ posts.variant12 }}";
    var variant22 = "{{ posts.variant22 }}";
    var variant32 = "{{ posts.variant32 }}";
    var variant42 = "{{ posts.variant42 }}";
    var question3 = "{{ posts.question3 }}";
    var answer3 = "{{ posts.answer3 }}";
    var variant13 = "{{ posts.variant13 }}";
    var variant23 = "{{ posts.variant23 }}";
    var variant33 = "{{ posts.variant33 }}";
    var variant43 = "{{ posts.variant43 }}";
    var question4 = "{{ posts.question4 }}";
    var answer4 = "{{ posts.answer4 }}";
    var variant14 = "{{ posts.variant14 }}";
    var variant24 = "{{ posts.variant24 }}";
    var variant34 = "{{ posts.variant34 }}";
    var variant44 = "{{ posts.variant44 }}";
    var question5 = "{{ posts.question5 }}";
    var answer5 = "{{ posts.answer5 }}";
    var variant15 = "{{ posts.variant15 }}";
    var variant25 = "{{ posts.variant25 }}";
    var variant35 = "{{ posts.variant35 }}";
    var variant45 = "{{ posts.variant45 }}";
</script>
<!-- Inside this JavaScript file I've inserted Questions and Options only -->
<script src="{% static 'js/questions.js' %}"></script>
<!-- Inside this JavaScript file I've coded all Quiz Codes -->
<script src="{% static 'js/script.js' %}"></script>
{% endblock %}
forms.py

Python
1
2
3
4
5
6
class LessonDone(forms.ModelForm):
done = forms.BooleanField(widget=forms.HiddenInput(), initial=True)
 
class Meta:
    model = Lessons
    fields =['done']
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.09.2021, 15:49
Ответы с готовыми решениями:

Двумерный массив. Поиск нулей.Не могу найти ошибку ошибку в коде
Вот,например массив 5 5 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 считываются два числа m и n и далее в выходной...

Не могу найти ошибку. Нажимаю на клавишу, выдает ошибку
uses ABCObjects,GraphABC; const Image_0 = '0_765e9_6a3e424a_S.png'; var p:PictureABC;speed:integer; procedure...

Не могу найти ошибку в программе(для просмотра картинок):кнопка НАЗАД не работает(не становится активной) Найдите ошибку.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.09.2021, 15:49
Помогаю со студенческими работами здесь

Не могу найти ошибку!! не могу не как разобраться! надо до завтра.
условие: Для 7 человек, среди которых есть мужчины и женщины, хранятся следующие данные: имя, пол (true - мужской, false - женский),...

Не могу разобраться с If-ами. Не могу найти ошибку
Только начал знакомство с программированием. Преподаватель задал задание, написать программу в VLC form, которая: 1) Здоровается 2)...

Не могу найти ошибку. Найти количество элементов, равных своему индексу
Выводит всегда false, а должен выводить C, т.е количество элементов равных своему индексу, скорее всего ошибка где то в синтаксисе....

Найти слова, повторяющиеся более одного раза, не могу найти ошибку
#include &lt;iostream&gt; using namespace std; void obr1(char **s, char **mas, int n, int m) { int i; int k; char *tm; for(i...

Найти в матрице первую нулевую строку. Не могу найти ошибку
Задача: Найти в матрице первую нулевую строку. program search; const nmax=10; var data,data1:textfile;


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru