Ho 2 modelli multi-tavolo ereditati come questi:forme Django: modo più DRY organizzare creare moduli/aggiornamento per i modelli ereditati
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)
Analogamente, classe form per BlogPost eredita dalla classe PostForm:
class PostForm(MapModelForm):
...
class Meta:
model = Post
def clean(self):
...
class BlogPostForm(PostForm):
class Meta:
model = BlogPost
Ero abituato a gestire la creazione/aggiornamento per entrambi i modelli in 2 viste non basate su classi. Per rendere le cose ASCIUTTE, ho deciso di provare le viste generiche basate sulla classe di Django. Ma a causa della mancanza di esempi e della scortesia degli utenti nei documenti correlati e nella varietà di approcci, sono confuso.
L'idea è quella di avere una vista di forma a base di classe per il modello Post
e li erediterà per il BlogPost
. Come dovrei personalizzare le classi vista?
Devo avere viste PostCreate e PostUpdate separate? Quindi le due classi sono quasi identiche e non ASCIUGANO affatto.
Devo avere un singolo FormView
sia per l'aggiornamento/creazione di un post? Funziona per la creazione ma non sono riuscito a capire come farlo per l'aggiornamento.
Devo creare una vista personalizzata (o due viste per creare/aggiornare) utilizzando le classi di mixin fornite invece di ereditare direttamente dalle viste?
grazie per la brillante risposta. – omat
Come indirizzare alla visualizzazione corretta quando non si sa se il POST sta per creare o aggiornare? C'è un buon modo per farlo seguendo questa struttura? – lajarre