2016-08-11 3 views
0

Ich versuche, ein neues Feld in django_comment Modell hinzuzufügen. Gemäß der Dokumentation werden die meisten benutzerdefinierten Kommentar Modelle Unterklasse der CommentAbstractModel Modell:django_comments neues Feld im Modell hinzufügen

from django.db import models 
from django_comments.models import CommentAbstractModel 

class CommentWithTitle(CommentAbstractModel): 
    title = models.CharField(max_length=300) 

Wenn ich eine Migration generieren, dann fügt sie alle Felder in Migrationen (alle Felder aus Kommentar Modell plus Titelfeld).

Und nach dem Ausführen von Migrationen werden CommentWithTitle Tabelle und django_comments Tabelle erstellt. Aber django_comments wäre nutzlos (nicht in Benutzung).

Ein weiterer Ansatz ist die Tabelle auf diese Weise zu erzeugen:

from django_comments.models import Comment 

class CommentWithTitle(Comment): 
    title = models.CharField(max_length=300) 

Und es erzeugt die Migration mit einem Feld nur mit der Referenz von comment_ptr.

Meine Frage ist: welcher Ansatz ist besser? Ich denke, das erste Modell ist gut, da es alle Felder in einer Tabelle hat. Aber das erzeugt die django_model, die überhaupt nicht verwendet wird.

Antwort

0

Ich würde die Dokumentation folgen.

bei der Durchführung der Suche wird Comment im Grunde erstreckt gerade CommentAbstractModel mit db_table angegeben.

class Comment(CommentAbstractModel): 
    class Meta(CommentAbstractModel.Meta): 
     db_table = "django_comments" 

ich den Verdacht, dass, wenn Sie die zweite Option tun Sie erwähnt, würde die Migration einen Fehler aus, weil die db_table zweimal erstellt werden.

Verwandte Themen