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) そして、Mixin から継承する Data と呼ばれるクラス。admin では、このクラスは Tag に GenericTabularInline を使用して Data のタグを表示します。また、管理ページに「名前を付けて保存」ボタンを表示するために、「save_as」を True に設定します。

何が起こるか: 少なくとも 1 つのタグを持つデータ オブジェクトの [名前を付けて保存] をクリックすると、次のメッセージが表示されます: Integrity Error (1048, "Column 'content_type_id' cannot be null")

私には、「名前を付けて保存」を行うときに、Django Admin が GenericForeignKeys を適切に処理していないようです。それを実行する方法はありますか?問題を回避する方法はありますか? それとも、ここで何か間違ったことをしている可能性がありますか?

おそらく追加する必要がありますが、ここでは Django 1.7.7 を使用しています。

編集: 1.8.2 にアップグレードしましたが、問題は解決しません。何か案は?

4

0 に答える 0