1

我有的:

a) 一个简单的类来存储标签:

class Tag(models.Model):
    """
    Defines a tag for any model object.
    """
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey()
    type = models.ForeignKey(TagType, related_name='+', verbose_name="Typ", db_column='Typ')
    value = models.CharField("Wert", max_length=80, db_column='Wert')

b) 将反向添加到任何类的 mixin:

class TaggedMixin(models.Model):
    """ Mixed into a model class, provides it with the ability to receive tags
    (i.e. Tag objects).
    """
    _tags = GenericRelation(Tag)

c) 还有一些类,称为 Data,它继承自 Mixin。在管理中,此类使用 GenericTabularInline for Tag 来显示数据的标签。它还将“save_as”设置为 True,以便在其管理页面上获得“另存为”按钮。

会发生什么:当我为具有至少一个标签的数据对象单击“另存为”时,我得到:完整性错误(1048,“列'content_type_id'不能为空”)

在我看来,Django Admin 在执行“另存为”时似乎没有正确处理 GenericForeignKeys。有没有办法让它运行?解决问题的方法?还是我在这里做错了什么?

也许我应该补充一下,我在这里使用的是 Django 1.7.7。

编辑:我们已经升级到 1.8.2 并且问题仍然存在。有任何想法吗?

4

0 回答 0