私は2つのモデルを持っており、1つはForeignKey
と一致させようとしています。そのためには、特定の番号と日付で2番目のモデルを検索しています。問題は2つの日付があり、どの日付を選択するか決定する必要があるということです。状況によってはNULLに設定されますが、そうでない場合もあります。それは私は2番目の日付フィールドを取得する必要がある場合。質問のDjango条件式
class MyModel1(models.Model):
model2_key = models.ForeignKey(MyModel2)
model1_date=...
model1_number=...
第2のモデル::
class MyModel2(models.Model):
model2_date1=...
model2_date2=...
model2_number=...
は今、どのような選択をする私はこのようなものがありますか?私はF expressions
、Q expressions
、When expressions
、Select
に関するドキュメントを探しました。私はちょっと混乱しています。 MyModel2
オブジェクトを検索して返す関数をどのようにwrtieできますか?私はこのようなものを持っているが、うまくいかない。
def _find_model2(searched_date, searched_number):
searched_model2=MyModel2.objects.get(Q(model2_number=searched_number),
Q(When(model2_date1__e='NULL', then=model2_date2) |
Q(When(model2_date1__ne='NULL', then=model2_date1))=searched_date))
私はかなり新しいジャンゴになっているので、どんな助けにも感謝します。
がい 'MyModel2.objects.filter(Q(model2_date1 = searched_date)| Q(model2_date2 = searched_date))フィルタ(model2_number = searched_number)'動作しませんか? – Justin
日付のうちの1つが時々設定されないことがあり、これがオブジェクトがクエリと一致するかどうかを判断する基準です。 – gonczor