2

一般的な関係をユーザーごとにフィルタリングしたい

Entry.objects.filter(content_object__user=request.user)

しかし、私はこのメッセージを受け取ります:

キーワード 'content_object' をフィールドに解決できません。選択肢は次のとおりです: content_type、id、object_id、reason、request_made

class Unsubscribe(models.Model):
    """

    Notes:
    See: http://www.screamingatmyscreen.com/2012/6/django-and-generic-relations/
    """
    content_type = models.ForeignKey(ContentType, help_text="Represents the name of the model")
    object_id = models.PositiveIntegerField(help_text="stores the object id")
    content_object = generic.GenericForeignKey('content_type', 'object_id')

    reason = models.CharField(max_length=60)

    request_made = models.DateTimeField(auto_now_add=True,
                                   help_text="Shows when object was created.")

アップデート:

私はこの引用を見つけました:

ForeignKey と GenericForeignKeys には少し違いがあると言ったことを思い出してください。クエリでは使用できません。Entry.objects.filter(content_object...) は使用できません。他のすべてを使用できますが、content_object は使用できません。

これは、ForeignKey のように x フィールドを取得する方法がないということですか?

私が見ることができる唯一の解決策は、このようなものですが、cmon!

tmpl['mydict'] = []
for item in Entry.objects.all():
    if request.user in item.content_object.user:
    tmpl['mydict'].append(item)

次に、元のクエリセットではなく tmpl コンテキストを返します。このように tmpl には、そのユーザーによるオブジェクトのリストしかありません。

4

0 に答える 0