Ich habe die folgenden zwei Modelle:Lokale Feld ‚created_at‘ in der Klasse ‚Anlage‘ kollidiert mit Feld ähnlicher Namen aus der Basisklasse ‚Timestampable‘
class Timestampable(models.Model):
created_at = models.DateTimeField(null=True, default=None)
updated_at = models.DateTimeField(null=True, default=None)
class Meta:
abstract = True
def save(self, *args, **kwargs):
now = timezone.now()
if not self.created_at:
self.created_at = now
self.updated_at = now
super(Timestampable, self).save(*args, **kwargs)
class Attachment(Timestampable, models.Model):
uuid = models.CharField(max_length=64, unique=True)
customer = models.CharField(max_length=64)
user = models.CharField(max_length=64)
file = models.FileField(upload_to=upload_to)
filename = models.CharField(max_length=255)
mime = models.CharField(max_length=255)
publicly_accessible = models.BooleanField(default=False)
Wenn ich versuche, diese Modelle zu migrieren, erhalte ich die folgende Fehlermeldung:
django.core.exceptions.FieldError: Local field 'created_at' in class 'Attachment' clashes with field of similar name from base class 'Timestampable'
ich las here, here und here, dass dies funktionieren, wenn die Basisklasse abstrakt ist. Ich habe es jedoch als abstrakt markiert, trotzdem scheint es nicht zu funktionieren. Was könnte sonst noch falsch sein? Ich benutze Django 1.8.14.
In der Tat, danke! Das habe ich auch bemerkt, nachdem ich es gepostet habe. Es löste das Problem jedoch nicht. – physicalattraction