0
我试图传递一些额外的上下文到Django的CreateView。我有以下网址:Django CreateView消失的形式
url(
regex = r'^add/(?P<complainant_pk>\d+)/$',
view = ComplaintCreateView.as_view(),
name = 'register_complaint',
),
和观点是:
class ComplaintCreateView(PermissionRequiredMixin, CreateView):
model = Complaint
form_class = ComplaintForm
login_url = "/login/"
permission_required = "complaints.add_complaint"
def get_context_data(self, **kwargs):
# Call the base implementation to get a context
context = super(ComplaintCreateView, self).get_context_data(**kwargs)
context['complainant'] = Complainant.objects.get(
pk=self.kwargs['complainant_pk']
)
这导致从模板线到来的模板错误:
{% crispy form %}
说
VariableDoesNotExist at /complaints/add/6/
Failed lookup for key [form] in...
当我删除overrid e在get_context_data
表格呈现良好,但当然我没有我的额外上下文。任何想法是什么造成这种情况?我完全被难住了,因为代码与我网站上其他地方的一些工作代码完全相同,除了模型名称。我试图覆盖get_form_class
以防止定义的form_class
在某种程度上被我的新get_context_data
忽略,但这并没有帮助。