0

モデルへの外部キーを持つモデルを作成しましたdjango.contrib.auth.models User。外部キーが参照している値を取得する必要があります。しかし、それを行う方法は?

たとえば、私のモデルは

from django.contrib.auth.models import User
def FooModel(models.Model):
      user = models.ForeignKey(User)

次に、次のいずれかを使用できることがわかります。

FooModel.objects.get()またはFooModel.objects.filter()、私が知る限り、FooModelからのエントリのみを返します。Userでは、モデルからどのように取得しますか?

4

2 に答える 2

2
m = FooModel.objects.get(id=123434)
m.user.username

を使用できます.。そのwxampleは、関連するユーザーのユーザー名を返します。また、クエリフィルタリングjoinsを使用して作成することもできます。__好き:

FooModel.objects.get(user__username='Foo')

ただし、でクエリを作成しているFooModelため、常にFooModel結果が得られます。したがって.、必要なフィールドに到達するために外部キー関係を使用するために使用する必要がありUserます。

編集:

Djangoではクエリセットでも使用できるため、モデルのモデル構造に外部キーがないreverse relations場合でも、次のように外部キーの逆関係を使用できます。UserFooModelFoomodel.user

def FooModel(models.Model):
    user = models.ForeignKey(User)
    foofield = Models.CharField(...)



User.objects.get(foomodel__foofield='Beatles')

ビートルズのレコードとfoofield値にFooModel外部キーを持つレコードを持っているユーザーを返しますUser

于 2012-05-08T18:43:02.487 に答える
0

プロパティ名+を参照することにより、外部キーIDにアクセスできます_id。例えば:yourmodel.user_id

于 2012-05-08T18:38:55.720 に答える