Django Admin:使用GenericForeignKey

时间:2015-05-04 11:00:13

标签: django admin generic-foreign-key

我有什么:

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。在admin中,此类使用GenericTabularInline for Tag来显示Data的标记。它还将“save_as”设置为True,以便在其管理页面上获得“另存为”按钮。

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

对我而言,似乎Django Admin在执行“另存为”时无法正确处理GenericForeignKeys。有没有办法让它运行?一种解决问题的方法?或者我可以在这里做错事吗?

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

编辑:我们已升级到1.8.2,问题仍然存在。有什么想法吗?

0 个答案:

没有答案