Eine Kopie zu greifen und die wiederverwendbare App direkt zu modifizieren, ist meiner Meinung nach kein guter Weg. Auf diese Weise, wenn Sie wiederverwendbare App neue Funktionen erhält oder seine Fehler behoben sind, können Sie nicht einfach eine neue Version der App ziehen.
Besserer Weg, um die Teile zu ändern, die nicht Ihren Bedürfnissen entsprechen, indem Sie sie überschreiben, aber die App intakt lassen. Nehmen wir ein Beispiel für Djangos Kommentar-App von contrib. Wenn Sie im Kommentarmodell nicht alle erforderlichen Felder haben, müssen Sie es ändern, indem Sie ein benutzerdefiniertes Modell für einen Kommentar erstellen, der das Original erbt, und die erforderlichen Features auf diese Weise hinzufügen. Aus der Dokumentation:
from django.contrib.comments.models import Comment
class CommentWithTitle(Comment):
title = models.CharField(max_length=300)
Jetzt habe ich die Kommentare App geändert, und ich kann auch die Quelle für einen Kommentar App aktualisieren, ohne sich um Konflikte zu kümmern. Sie müssen nicht etwas hinzufügen, um es zu benutzen, es funktioniert genauso gut, wenn Sie etwas loswerden oder etwas verändern.
Bei Ansichten und Vorlagen ist es eine schlechte Übung, die von der App bereitgestellten Vorlagen direkt zu ändern. Ich bevorzuge dies, indem ich ein Schlüsselwortargument für die Ansicht verwende, die die Vorlage angibt. Wenn ich die Standardvorlage durch meine eigene ersetzen möchte, kann ich einfach die neue von der URL-Konfiguration angeben. Jetzt muss ich die Ansicht nicht mehr berühren, um die Vorlage zu ändern, und die URL-Konfiguration sagt eindeutig, dass ich meine eigene verwende, anstatt die Standardvorlage zu verwenden.
Danke für die Klärung im Detail. Du hast alle meine Fragen beantwortet :) – wailer