这是我的表单类: 来自django进口表格
from .models import Category
class AddResource(forms.Form):
CATEGORY_CHOICES = [cat.title for cat in Category.objects.all()]
ResourceTitle = forms.CharField()
Description = forms.Textarea()
Link = forms.URLField()
Categories = forms.MultipleChoiceField(choices=CATEGORY_CHOICES)
这是我对表单网址的看法:
from django.shortcuts import render
from django.views.generic import View, TemplateView, FormView
from .models import *
from .forms import AddResource
class AddResourceView(FormView):
template_name = 'addRes.html'
form_class = AddResource
success_url = '/'
def get_form(self, form_class):
return form_class()
def form_valid(self, form):
print form
return super(AddResourceView, self).form_valid(form)
我遇到的麻烦是在模板内部调用它。如何调用我在django-templates中指定的表单?
答案 0 :(得分:0)
FormView
提供了一个名为form
的上下文变量,用于保存您的实际表单对象,因此您可以使用:
{{ form.as_table }}
或form
提供的任何其他呈现选项。请参阅:https://docs.djangoproject.com/en/dev/topics/forms/#displaying-a-form-using-a-template
答案 1 :(得分:0)
我找到了答案。它是如何包含django形式的选择。所以CATEGORY_CHOICES
必须是一个元组列表,在这种情况下不是。
因此,这个简单的改变使其有效:
CATEGORY_CHOICES = [('', cat.title)
for cat in Category.objects.all()]