我有一个django模型来定义内容页,在这个模型中,我有一个字段可以选择是否希望某个表单出现在页面中。你知道吗
现在我做了第二张表格。我想根据ContentPage
实例中填充的某个字段使用一个或另一个。你知道吗
更具体地说,我坚持这一部分:
class ViewContentPage(CreateView):
model = ContentPage
# What I'd like to do
form_class = depending_on_some_ContentPage_field()
# From here, overriden methods and stuff
问题是似乎无法访问kwargs
或request
在类级定义(为了根据从kwargs中提取的slug加载适当的ContentPage记录,然后从它的字段中确定要加载的窗体)
我一直在思考不同的方法来获得类似的结果,这项研究让我发现了这个问题:Can I call a view from within another view?。我认为“将FormViews作为ViewContentPage中的子视图”将为在模板级别呈现的表单提供一个完全独立的视图。。。你知道吗
类似于上面的pseudo\u代码中公开的东西可以用其他方法实现吗?你知道吗
正如@Alasdair建议的,我重写了视图中的get_form_class()
方法。它看起来像是做了我想要的,但一个小小的失败,回溯是完全在Django本身站在我的方式。你知道吗
我使用Django v1.8.3,引发异常的点位于django.core.handlers.base.py
第132行(回溯中的第一行)。例外情况是:
TypeError: 'instance' is an invalid keyword argument for this function
这个异常的原因似乎在django/db/models/base.py
第480行(回溯的最后一行)。不知怎么的,这个班(django.db.型号.基本模型)正在运行,即使self = Error in formatting: RelatedObjectDoesNotExist: MyModelForForm2 has no page.
真的很混乱。你知道吗
这并不是我第一次看到回溯在源代码的任何地方都不会停止的错误,即使如此,更正源代码也会消除错误。然而,我仍然停留在如何在不修改Django本身的情况下纠正这个问题上。你知道吗
您可以重写^{} 方法。在它内部,您可以访问
self.request
,并从self.kwargs
获取slug。你知道吗相关问题 更多 >
编程相关推荐