Seite 1 von 1

Django: abstract Model und Feld Eigenschaften ändern...

Verfasst: Mittwoch 15. Dezember 2010, 15:23
von jens
Habe das selbe Problem was hier beschrieben wird: http://stackoverflow.com/questions/1940 ... ited-field

Ich würde auch gern Eigenschaften eines geerbten Model-Field im Nachhinein anpassen (z.B. db_column, help_text u.s.w.)

Ich finde keinen Weg das zu tun. Man kann leider nicht einfach ein Feld aus der geerbten "abstract Model" überschreiben, wie z.B.:

Code: Alles auswählen

class MyBaseModel(models.Model):
    name = models.CharField(max_length=100)

    class Meta:
        abstract = True

class MyModel(MyBaseModel):
    name = models.CharField(max_length=100, db_column="bar")
das steht auch in der Doku: http://docs.djangoproject.com/en/dev/to ... -permitted

Jemand eine Idee?

Re: Django: abstract Model und Feld Eigenschaften ändern...

Verfasst: Donnerstag 16. Dezember 2010, 10:27
von Dauerbaustelle
Das geht halt einfach nicht. Stell dir mal vor, was das für ein Chaos wäre, wenn du da jetzt diese Multi-Table-Inheritance verwenden würdest... dann müsste man mehrere Super-Models haben mit den verschiedenen z.B. Maximallängen usw. Das würde total kompliziert.

Wie wäre es mit Mixins? Muss man dann halt bei allen Submodels explizit reinmixen, aber sollte afaik funktionieren... Oder du machst ein bisschen Metaklassengezauber das automatisch das Mixin reinwurschtelt sollte ein bestimmtes anderes Mixin nicht angegeben sein. (Ist es imho aber nicht wert.)