在generic UpdateView
中,如果需要根据传递的对象动态更改窗体,可以使用此函数(如thisanswer中所示):
def get_form_class(self):
if self.object.pk == 1:
return MyForm
else:
return OtherForm
如果我想更改model
,是否有类似的函数?其中模型为:
class SomeUpdateView(generic.UpdateView):
login_required = True
template_name = '...'
model = SomeModel ## I need it to be dynamic
form_class = SomeForm
success_url = reverse_lazy('some_url')
如ModelFormMixin.model文档中所述,您可以通过重写get_queryset()动态计算视图将处理的查询集:
有一个很棒的网站可以快速检索基于Django类的视图的所有属性。我想我不能在这里做广告,但你可以从ccbv.co.uk公司(我不是这个网站的创建者,也不是它的亲戚,但我几乎每天都在使用它……)。你知道吗
没有可以重写的
get_model
方法。你知道吗相反,您可以重写
get_queryset
,并返回要使用的模型的queryset。你知道吗或者可以重写
get_object
,并返回要使用的模型的对象。你知道吗相关问题 更多 >
编程相关推荐