2011-07-05 5 views
0

結果:MODEL1 idのハンドラの100件のインスタンスがあるたとえば境界とDjangoのForeignKeyフィールド値の制約 - 私はこのようなmodels.pyを持っている場合、彼らはクエリセットをもたらすことができる方法の例については

Handler(models.Model): 
    model1 = ForeignKey(Model1) 
    model2 = ForeigKey(Model2) 
    user = models.ForeignKey(User) 

=この100のインスタンスの1が、モデル2 idが5の範囲1にあり、私はこのような何かをするとき:

Handles.objects.filter(model1=1).values_list('model2_id', flat=True) 

それは繰り返されている100個のid値、の5つのID値のリストまたはリストを返します。 ? そして、100の値を返すと、繰り返される値ごとに1つの値しか残らない可能性がありますか?

+0

Djangoシェルを起動して、瞬時にクエリを確認して微調整することができます。 – Tiago

+0

いいえ、できません。私はdjango.settingsが定義されていないと私はエラーを取得することはできません。 – krzyhub

+0

プロジェクトディレクトリから 'python manage.py shell'を使います。 –

答えて

1

100個のid値のリストを返します。 ユニークな5つを取得したい場合は、それをPythonで行うことができます。

model2_id_uniq_values = list(set(Handles.objects.filter(model1=1).values_list('model2_id', flat=True))) 

これは、最も細かく調整されたアルゴリズムではない可能性があります。セットを使用すると、その順序が失われます。しかし、あなたの目的のためにはうまくいくようです。

関連する問題