【发布时间】:2012-05-08 02:30:42
【问题描述】:
我有 2 个这样的多表继承模型:
class Post(models.Model):
title = models.CharField(max_length=100, blank=True, null=True)
text = models.TextField(blank=True, null=True)
location = models.PointField()
...
class BlogPost(Post):
blog = models.ForeignKey(Blog)
同样,BlogPost 的表单类也继承自 PostForm 类:
class PostForm(MapModelForm):
...
class Meta:
model = Post
def clean(self):
...
class BlogPostForm(PostForm):
class Meta:
model = BlogPost
我曾经在 2 个非基于类的视图中处理两个模型的创建/更新。为了让事情变得干燥,我决定尝试一下 Django 的基于类的通用视图。但是由于相关文档缺乏示例和用户不友好以及各种方法,我感到困惑。
这个想法是为Post 模型提供基于类的表单视图,并为BlogPost 继承它们。我应该如何定制视图类?
我应该有单独的 PostCreate 和 PostUpdate 视图吗?然后这两个类几乎相同,根本不是 DRY。
我应该有一个FormView 来更新/创建帖子吗?它适用于创建,但我不知道如何进行更新。
我应该使用提供的 mixin 类而不是直接从视图继承来构建自定义视图(或用于创建/更新的两个视图)吗?
【问题讨论】:
标签: django django-forms django-class-based-views