2017-04-05 8 views
0

私はユーザーがフォームに答えることができるアプリケーションを作成しています。Django/GraphQL三重接合テーブル

だから私は持っている:

Userは、私は特定のフォームに答えているすべてのユーザーを照会することができますどのように django.contrib.auth.models

からモデルです

class Form(models.Model): owner = models.ForeignKey(User, on_delete=models.CASCADE) topic = models.CharField(max_length=40) class Question(models.Model): form = models.ForeignKey(Form, on_delete=models.CASCADE) text = models.CharField(max_length=200) question_type = models.CharField(max_length=10) class Participation(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) form = models.ForeignKey(Form, on_delete=models.CASCADE) created_at = models.DateTimeField(auto_now_add=True) class Answer(models.Model): participation = models.ForeignKey(Participation) question = models.ForeignKey(Question) value = models.CharField(max_length=255) 

答えて

0

特定のフォームに回答したすべてのユーザーをクエリするにはどうすればよいですか?あなたは、余分な慎重になりたい場合は

users = Answer.objects.filter(participation__form=form).values('participation__user') 

:あなたが特定のformのインスタンスを持っている場合は、ユーザーが参加し、応答したすべての答えを、得ることができますし、そこからすべてのユーザーを取得

質問のフォームが参加のフォームと同じであるかどうか確認することができます。

users = Answer.objects.filter(participation__form=form, 
        question__form=form).values('participation__user') 
+0

ありがとうございました!あなたの技術はIDのリストを返すので、私は 'users = User.objects.filter(id__in = users_id)'を使用しました。 – Pangoraw

+0

はい、それは外部キーであるため、IDのリストだけを返します。 – AKS

関連する問題