Страница CreateView не учитывает форму
Я пытался создать в Django представление, чтобы использовать форму и это не работает. Программа не использует форму. Я не понимаю, почему форма не работает. urls.py
from django.urls import path
from .views import (
ItemListView,
ItemDetailView,
ItemCreateView
)
urlpatterns = [
path(r'', ItemListView.as_view(template_name='item_list.html'), name='ListView'),
path(r'create/', ItemCreateView.as_view(), name='create'),
path(r'<int:pk>/', ItemDetailView.as_view(), name='s'),
]
models.py
class Item(models.Model):
#associations
user =models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
article =models.ForeignKey(Article, on_delete=models.CASCADE)
#item stuff
name =models.CharField(max_length=120)
description =models.TextField(blank=True, null=True, help_text='Separate each item by comma')
exceptions =models.TextField(blank=True, null=True, help_text='Separate each item by comma')
bl =models.BooleanField(default=True)
timestamp =models.DateTimeField(auto_now_add=True)
updated =models.DateTimeField(auto_now=True)
def get_absolute_url(self):
return reverse('menus:s', kwargs={'pk':self.pk})
class Meta:
ordering = ['-updated','-timestamp']
def get_description(self):
return self.description.split(',')
def get_exceptions(self):
return self.exceptions.split(',')
views.py
class ItemCreateView(CreateView):
template_name = 'menus/form.html'
form_class = ItemForm
def get_queryset(self):
return Item.objects.filter(user=self.request.user)
def get_context_data(self,*args, **kwargs):
context=super(ItemCreateView, self).get_context_data(**kwargs)
title='Add Item'
context={
'title' : title
}
def form_valid(self, form):
instance = form.save(commit=False)
instance.user = self.request.user
return super(ItemCreateView, self).form_valid(form)
forms.py
from django import forms
from .models import Item
class ItemForm(forms.ModelForm):
class Meta:
model = Item
fields = [
'name',
'description',
'exceptions',
'bl',
]
form.html
{% extends 'main\base.html' %}
{% block content %}
<html>
<body>
<p>{{ title }}</p>
{% if form.errors.non_field_errors %}{{ form.errors.non_field_errors }}{%endif%}
<form method="POST"> {% csrf_token %}
{{ form.as_p }}
<button type="submit">Save</button>
</form>
</body></html>
{% endblock content %}
Результатом является: введите описание изображения здесь
Я не понимаю, почему он не принимает for в html.