Недопустимый тег блока в строке 24: 'form.as_p', ожидается 'endblock'. Вы забыли зарегистрировать или загрузить этот тег?

Я новичок в Django и пытаюсь сделать приложение, но сейчас у меня такая ошибка: "Недопустимый тег блока в строке 24: 'form.as_p', ожидается 'endblock'."

ШАБЛОН

{% extends "base.html" %}

{% block title %}
    <title>Tarefas</title>
{% endblock title %}

{% block content %}
  <div class="content">
  {% if messages %}
    <div class="container">
      <br>
      {% for message in messages %}
      <div class="alert alert-info" role="alert">
        {{message}}
      </div>
      {% endfor %}
    </div>
  {% endif %}

      <div class="container tasks-box">
          <table class="table table-striped">
            <form method='POST'>
              {% csrf_token %}
              {% form.as_p %}
              <button type="submit" class="btn btn-secondary btn-sec">Adicionar</button>
            </form>
[...]

forms.py

from django.forms import ModelForm
from todolist.models import Tasks

class TaskForm(ModelForm):
    class Meta:
        model = Tasks
        fields = ['task','responsible']

views.py

from django.shortcuts import render, redirect
from django.http import HttpResponse
from todolist.models import Tasks
from todolist.forms import TaskForm
from django.contrib import messages
from django.contrib.auth.decorators import login_required

@login_required
def todolist(request):
    if request.method == 'POST':
        form = TaskForm(request.POST or None)
        if form.is_valid():
            instance = form.save(commit=False)
            instance.manager = request.user
            instance.save()
        messages.success(request,("Tarefa adicionada"))
        return redirect('todolist')
    else:
        form = TaskForm
        all_tasks = Tasks.objects.filter(manager=request.user)
        all_users = Tasks.objects.all()
        return render(request,'todolist.html',{ 'form':form,
                                                'all_tasks':all_tasks,
                                                'all_users':all_users})

models.py

from django.db import models
from django.contrib.auth.models import User
from django.contrib.auth import get_user_model
# Create your models here.

User = get_user_model()
class Tasks(models.Model):
    manager = models.ForeignKey(User, on_delete=models.CASCADE,default=None, related_name='tasks_manager')
    task = models.CharField(max_length=300)
    done = models.BooleanField(default=False)
    responsible = models.ForeignKey(User, on_delete=models.CASCADE, default=None, related_name='tasks_responsible', blank=True, null=True)

    def __str__(self):
        return self.task

Я попробовал не использовать тег {{ form }} в шаблоне и это работает. Я думаю, что проблема во взглядах, но я не могу понять почему. Кто-нибудь может мне помочь?

Параметры рендеринга формы согласно документации

Все, что вам нужно сделать, чтобы поместить вашу форму в шаблон, это поместить экземпляр формы в контекст шаблона. Таким образом, если ваша форма будет называться form в контексте, {{ form }} отобразит ее и элементы соответствующим образом.

Однако есть и другие варианты вывода для пар /:

{{ form.as_table }} will render them as table cells wrapped in <tr> tags
{{ form.as_p }} will render them wrapped in <p> tags
{{ form.as_ul }} will render them wrapped in <li> tags

У вас опечатка в {% form.as_p %} просто замените это на {{ form.as_p }}

Вернуться на верх