Ich suche nach Möglichkeiten, die create()
Methode einer Unterklasse zu überschreiben.Django überschreiben Modellunterklasse create method
Im Grunde mache ich das:
class Base(models.Model):
field1_base = models.IntegerField()
def __init__(self, field1_base):
# LOGICS
self.field1_base = field1_base
class A(Base):
field2_sub = models.IntegerField()
def __init__(self, field2_sub, field1_base):
# LOGICS
self.field2_sub = field2_sub
super(A, self).__init__(field1_base)
A(field2_sub=1, field1_base=2)
jedoch können wir die __init__()
Methode eines Modells nicht außer Kraft setzen.
Ich möchte nur einige Felder in der Basisklasse Methoden zugewiesen werden.
Gibt es einen geeigneten Weg, dies zu tun mit create()
Methode?
Natürlich kann ich benutzerdefinierte create
Methode der Basisklasse, aber was ich will, ist Base.create und A.create zugleich auf die Schaffung von A zu berufen, die die Situation anders aus this question macht
möglich Duplikat zu http://stackoverflow.com/questions/39483184/django-model-id-turns-into-a-tuple/39483272#39483272 und http://stackoverflow.com/questions/843580/schreiben-ein-init-funktion-zu-verwendet-in-django-modell # 843740 –
yup können Sie eine einfache Klassenmethode verwenden, wie in der Antwort – armak
@SardorbekImomaliev Ganz ähnlich, denke ich. In meinem Fall muss ich jedoch die Methoden des Basismodells gleichzeitig aufrufen. – SolessChong