0

私は2つのモデルを持っており、1つは別のモデルに関連しています。

class Contacts(BaseModel):
    user = models.ForeignKey(User, related_name='contacts')
    group = models.ForeignKey(ContactGroups, related_name = 'contact_list')
    name = models.CharField(_("Name"), max_length = 250, null = True, blank = True)
    title = models.CharField(_("Title"), max_length = 250, null = True, blank = True)
    twitter = models.CharField(_("Twitter"), max_length = 250, null = True, blank = True)
    facebook = models.CharField(_("Facebook"), max_length = 250, null = True, blank = True)
    google = models.CharField(_("Google +"), max_length=250, null = True, blank = True)
    notes = models.TextField(_("Notes"), null = True, blank = True)
    image = ImageField(_('mugshot'), upload_to = upload_to, blank = True, null = True)



class PhoneNumbers(BaseModel):
    contact = models.ForeignKey(Contacts, related_name='phone_numbers')
    phone = models.CharField(_("Phone"), max_length = 200, null = True, blank = True)
    type = models.CharField(_("Type"), max_length = 200, choices = TYPES, null = True, blank = True)

ここでは、少なくとも1つの電話番号を持つフィルター連絡先が必要でした。

私が試してみました、

contacts = Contacts.objects.filter(user=request.user, phone_numbers__isnull=True)

正しいですか?他に最適化された方法はありますか?関連する名前に基づいてクエリセットをフィルタリングするにはどうすればよいですか?

4

1 に答える 1

1

私はあなたが欲しいと思います、

contacts = Contacts.objects.filter(user=request.user, phone_numbers__isnull=False)

つまり、少なくとも1つある場所が必要な場合は、Falseではなくチェックします。そこにない場合はあります。TrueContactsPhoneNumberNULL

于 2012-10-16T06:27:04.243 に答える