同じキャンディーキーを共有するDjangoのテーブルに参加してください
-
11-12-2019 - |
質問
私はクエリしたい3つのクラスがあります。データベースに仕事をしたいと思います。一致するすべての関連フィールドを取得するには、ユーザーオブジェクトで単一のクエリを実行することが可能ですか?コードに3つのテーブルを参加させないようにしています。コード内でそれを実行することになった場合、私は3つのクラスすべてにクエリを照会し、試合を維持しながら重複を排除します。
Query: Get all users whose name contains "William", category is "Single" and alias is "Bill".
class ModelA(models.Model):
user = models.ForeignKey(User,related_name="%(class)s",null=False)
name = models.CharField(max_length=70)
def __unicode__(self):
return u'%s' % (self.name)
class ModelB(models.Model):
user = models.ForeignKey(User,related_name="%(class)s",null=False)
category = models.CharField(max_length=70)
def __unicode__(self):
return u'%s' % (self.category)
class ModelC(models.Model):
user = models.ForeignKey(User,related_name="%(class)s",null=False)
alias = models.CharField(max_length=70)
def __unicode__(self):
return u'%s' % (self.alias)
Note: this is an example only, and I am not looking to combine all the info in a single table.
. 解決
3つのテーブルを結合せずにこれを行うことはできません。
User.objects.filter(modela__name=u'William', modelb__category=u'Single',
modelc__alias=u'Bill')
. 所属していません StackOverflow