У меня есть 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
Раньше я обрабатывал создание/обновление для обеих моделей в двух представлениях, не основанных на классах. Чтобы все было СУХИМ, я решил попробовать общие представления Django на основе классов. Но из-за отсутствия примеров и неудобных для пользователей связанных документов и разнообразия подходов я в замешательстве.
Идея состоит в том, чтобы иметь представления форм на основе классов для модели Post
и наследовать их для BlogPost
. Как мне адаптировать классы представления?
Должен ли я иметь отдельные представления PostCreate и PostUpdate? Тогда два класса почти идентичны и совсем не СУХИЕ.
Должен ли я иметь один FormView
как для обновления, так и для создания сообщения? Он работает для создания, но я не мог понять, как это сделать для обновления.
Должен ли я создавать собственное представление (или два представления для создания/обновления), используя предоставленные классы примесей вместо прямого наследования от представлений?