我正在尝试在Django中运行一个抽象模型,我试图根据建议设置相关名称来打砖墙:http://docs.djangoproject.com/en/dev/topics/db/models/#be-careful-with-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'
我在这里错过了什么吗?
答案 0 :(得分:1)
请注意链接上的粗体文字:“已更改开发版本”。如果您没有使用最近结帐的Django主干 - 例如,您使用的是最新发布的版本1.1 - 您应该使用this link作为文档。该版本的文本没有提及app_label
,因为它尚未被引入。