0

Djangoアプリケーションに以下のモデルがあります: このモデルでは、選択したcontent_objectの「name」属性を取得し、modelAdminクラスのlist_displayに表示するにはどうすればよいですかGenericForeign Keyオブジェクトのキーを表示するだけです。私は本当にこれで助けが必要です。GenericForeignキーオブジェクトの名前属性を取得

class Checkout(models.Model): 
    checkout_date = models.DateTimeField(auto_now_add=True) 
    updated = models.DateTimeField(auto_now=True) 
    check_in_complete = models.BooleanField(default=False, editable=False) 
    content_type = models.ForeignKey(ContentType, 
            limit_choices_to={"model__in": ('Facilitator', 'Enumerator', 'Tutor')}) 
    object_id = models.PositiveIntegerField(verbose_name='Receiver') 
    content_object = GenericForeignKey('content_type', 'object_id') 
+0

'my_checkout.content_object.name'を試しましたか? – Selcuk

答えて

0

GenericForeignKeyは、通常のフィールドオブジェクトではありませんので、あなたは、フィルタで使用することはできません。

Checkout.objects.filter(content_object=other_obj) # this will fail 

しかし、あなたはあなたのチェックアウトがGenericForeignKeyを使用して関連付けられているオブジェクトのnameプロパティにアクセスしたい場合次のようにすることができます:

name = checkout_obj.content_object.name 
+0

obj.content_objectは正常に動作します。最後にご確認ください。 あなたが言ったようにCheckout.objects.filter(content_object = other_obj)は失敗します – rohanagarwal

+0

ありがとうございました。私は自分の答えを更新しました。私はフィルタで動作していないと混乱してしまった。オブジェクト上で直接動作します。 – AKS

関連する問題