Формы Django: самый СУХОЙ способ организовать создание/обновление форм для унаследованных моделей

У меня есть 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как для обновления, так и для создания сообщения? Он работает для создания, но я не мог понять, как это сделать для обновления.

Должен ли я создавать собственное представление (или два представления для создания/обновления), используя предоставленные классы примесей вместо прямого наследования от представлений?

5
задан omat 27 April 2012 в 10:28
поделиться