我在django 1.5.2中有一组模型,都使用GenericForeignKey
和GenericRelation
。问题是我也使用代理继承。泛型关系是Field,但不是DB字段,但在验证模型时,django会在代理继承的模型中看到Field并引发错误。
以下是我的问题的简化版本。有没有一个简单的解决方案可以让我只访问TaggableArticle中的标签?
from django.db import models
from django.contrib.contenttypes import generic
from django.contrib.contenttypes.models import ContentType
class Tag(models.Model):
tag = models.SlugField()
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
class Article(models.Model):
text = models.TextField()
class TaggableArticle(Article):
tags = generic.GenericRelation(Tag)
class Meta:
proxy = True
结果是:
python manage.py validate
FieldError: Proxy model 'TaggableArticle' contains model fields.
[1] 15784 exit 1 python manage.py validate
到目前为止我的想法:
for_concrete_model
标志,但我还没有看到这是否可以解决我的问题。我只是理解,如果关系在Article中,并且我希望能够使用正确的内容类型标记对象(Article vs TaggedArticle),它可以提供帮助。Tkank you!