0

プラークモデルとベテラン(ForeignKey)モデルのクエリーセットを、queryset_listという結合されたクエリーセットに作成します。モデルと外部キーからDjango Querysetを作成

モデル

class Plaque(models.Model): 
    created_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='plaques', default=1) 
    group = models.ForeignKey(Group, blank=True, null=True, verbose_name='Group Name') 
    veteran = models.ForeignKey(Veteran, blank=True, null=True) 
    ... 

ビュー

def plaque_list(request): 
    today = timezone.now().date() 
    plaques = Plaque.objects.all() 
    veterans = Plaque.objects.all() 
    queryset_list = plaques | veterans 
    # queryset_list = Plaque.objects.active().order_by('first_name') 
    ... 

答えて

0

それはあなたの質問から何をしようとして私にははっきりしていない、あなたが割り当てたとして、あなたのビューコードは、さらに物事を混乱させる結果をPlaque.objects.all()の2つの異なる変数に変換し、それらをまとめます。 PlaqueモデルのForeignKeyオブジェクトはすべてクエリーセットで使用できます。 、.all()は厳密には必要ではない

plaques = Plaque.objects.select_related("veteran").all() 
for p in plaques: 
    print p.veteran 

NBが、私はそれを明確に私はあなたと同じクエリを使用していた作りたかったし、単に:あなたはそうのように、効率的に戻ってそれらすべてを引っ張ることを確認するためにselect_relatedを使用することができますそれに加えて。

+0

私はPlaques.objectを両方に任命したことに気付きました...今日は頭が寒いところで働いています。ありがとうございました。 –

0

select_relatedメソッドを使用できるはずです。

queryset_list = Plaque.objects.select_related('Veteran').all().order_by('first_name') 

詳細は、Django documentationで提供されています。

関連する問題