Форма Django не отображается на html-страницеPython

Программы на Python
Ответить
Anonymous
 Форма Django не отображается на html-странице

Сообщение Anonymous »

Я изучаю Django и создал форму с помощью ModelForms. Сначала я написал view.py как функцию, но как только я попытался сделать ее классом, форма не отображается, а остальные теги работают. Это мой view.py в методе функции

Код: Выделить всё

def company(request):
company = Company.objects.all()
cform = CompanyForm()
form = CompanyForm(request.POST or None)
if form.is_valid():
form.save()
return HttpResponseRedirect('/company')
return render(request,'company/company.html',{
'company': company,
'cform':cform
})
Это view.py на основе классов

Код: Выделить всё

class CompanyView(generic.TemplateView):
model = 'Company'
template_name = 'company/company.html'
Я обновил urls.py вот так

Код: Выделить всё

urlpatterns = [
path('',views.IndexView.as_view(), name='index'),
path('form/',views.CompanyView.as_view(),name='company'),
]

Наконец-то это мой HTML-шаблон

Код: Выделить всё

{{ company.company_name }}
[list]
{% for company in company.choice_set.all %}
[*]{{ company.company_name }}
{% endfor %}
[/list]


{% csrf_token %}


 Company Form 


{{ cform.as_p }}




и form.py

Код: Выделить всё

from .models import Company

# create a ModelForm
class CompanyForm(forms.ModelForm):

class Meta:
model = Company
fields = ('company_name','location','email_id')
Когда указан класс CompanyView(generic.DetailView):, я получаю исключение типа исключения: AttributeError в /company/form/ Значение исключения: объект 'str' не имеет атрибута '_default_manager'.
Когда он обновляется до класса CompanyView(generic.FormView): исключение ошибки: объект 'NoneType' не может быть вызван

Код: Выделить всё

class CompanyView(generic.TemplateView):
отображает все, кроме {{ cform.as_p }}
Я попробовал много изменений в шаблоне и все такое, но не смог найти здесь ошибку.

Подробнее здесь: https://stackoverflow.com/questions/691 ... -html-page
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»