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

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

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

...
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

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

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

{% 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

class LessonDone(forms.ModelForm):
done = forms.BooleanField(widget=forms.HiddenInput(), initial=True)

class Meta:
    model = Lessons
    fields =['done']
Вернуться на верх