我有什么:
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,问题仍然存在。有什么想法吗?