Я пытаюсь заставить абстрактную модель работать в Django, и я ударился о кирпичную стену, пытаясь установить related_name согласно рекомендации здесь:
Вот как выглядит моя абстрактная модель:
class CommonModel(models.Model):
created_on = models.DateTimeField(editable=False)
creared_by = models.ForeignKey(User, related_name="%(app_label)s_%(class)s_created", editable=False)
updated_on = models.DateTimeField(editable=False)
updated_by = models.ForeignKey(User, related_name="%(app_label)s_%(class)s_updated", editable=False)
def save(self):
if not self.id:
self.created_on = datetime.now()
self.created_by = user.id
self.updated_on = datetime.now()
self.updated_by = user.id
super(CommonModel, self).save()
class Meta:
abstract = True
Моя общая модель находится в [project_root] /models.py. Это родительский объект этой модели, который находится в приложении с именем Feedback [project_root] /feedback/models.py:
.
from django.db import models
from mediasharks.models import CommonModel
class Feedback(CommonModel):
message = models.CharField(max_length=255)
request_uri = models.CharField(max_length=255)
domain = models.CharField(max_length=255)
feedback_type = models.IntegerField()
Обычно я пытаюсь настроить общую модель, чтобы я всегда мог определить, когда и кем были созданы записи в базе данных.
Когда я запускаю "python manage.py validate", я получаю это сообщение об ошибке: KeyError: 'app_label'
Я что-то здесь упускаю?