Django 基于类的泛型视图和属性
我在Django 1.3中实现了基于类的视图,我发现自己处于这样的场景中,我的CreateView、UpdateView和DeleteView几乎相同。有没有一种方法可以只用一个视图CreateUpdateView或类似的东西来实现这一点,或者这是实现CBGV的标准方法 此外,在ThingyAdd中,我没有像在ThingyEdit中那样指定模型,但它们都可以正常工作。我假设模型是由form_类ThingyForm的元部分中定义的模型隐含/提取的,ThingyForm是一个ModelForm。这个假设正确吗Django 基于类的泛型视图和属性,django,django-views,Django,Django Views,我在Django 1.3中实现了基于类的视图,我发现自己处于这样的场景中,我的CreateView、UpdateView和DeleteView几乎相同。有没有一种方法可以只用一个视图CreateUpdateView或类似的东西来实现这一点,或者这是实现CBGV的标准方法 此外,在ThingyAdd中,我没有像在ThingyEdit中那样指定模型,但它们都可以正常工作。我假设模型是由form_类ThingyForm的元部分中定义的模型隐含/提取的,ThingyForm是一个ModelForm。这个
class ThingyAdd(AuthMixin, CreateView):
form_class = ThingyForm
context_object_name='object'
template_name='change_form.html'
success_url='/done/'
class ThingyEdit(AuthMixin, UpdateView):
model = Thingy
form_class = ThingyForm
context_object_name='object'
template_name='change_form.html'
success_url='/done/'
class ThingyDelete(AuthMixin, DeleteView):
model = Thingy
form_class = ThingyForm
context_object_name='object'
template_name='delete_confirmation.html'
success_url='/done/'
您可以创建另一个mixin
class ThingyMixin(object):
model=Thingy
form_class=ThingyForm
template_name='change_form.html'
context_object_name='object'
success_url='/done/'
那么在你看来,
class ThingyAdd( AuthMixin, ThingyMixin, CreateView ):
pass
class ThingyEdit( AuthMixin, ThingyMixin, UpdateView ):
pass
class ThingyDelete( AuthMixin, ThingyMixin, DeleteView ):
template_name='delete_confirmation.html'
太好了,谢谢。我是否需要指定模型属性,或者它是由form_类上的模型暗示的?您应该只需要在DeleteView上提供一个模型属性。