2016-08-29 5 views
0

私が持っている二つのモデル:だからDjango ORMに関連オブジェクトの空白以外のフィールドがあるオブジェクトをすべて取得しますか?

Company: 
    pk 
    ... 
Supplier: 
    pk 
    mobile_phone = models.CharField(max_length=200, default='', blank=True, verbose_name="Мобильный телефон") 
    company_id 
    ... 

  • 当社は多くサプライヤー
  • を持っていることは
  • サプライヤーは会社

どのように属していてもよいですすべての企業を取得する空白でないmobile_phoneのサプライヤ1人?

が試み:

  1. return queryset.filter(suppliers__mobile_phone__iregex=r’^(?!\s*$).+’)戻り値は重複
  2. return queryset.exclude(suppliers__isnull=True).exclude(suppliers__mobile_phone__exact=‘’)でクエリセット当社はそれらのmobile_phoneを持ってdoen't 2社のサプライヤーを持っているときは動作しません。

ヘルプ//docsへのリンクがありがとうございます。

答えて

1

mobile_phoneが空の場合は、default=''を使用しないでください。null=Trueを使用してください。

Company.objects.filter(supplier__mobile_phone__isnull=False) 
+0

DBはすでにだっ次に、あなたが試すことができるかもしれませんschemedと私は変換を適用することはできません。あなたの答えは技術的に正しいと思ったので、私は@Michael Plattの '.distinct()'解答を受け入れなければなりません。しかし、もう一度新入社員にとって:これは実際には新鮮なDBにとって正しいものです。 +1、ありがとう、ありがとう8) – f1nn

関連する問題