djangoにおけるクエリの生成についての質問です。
python
1class Group(Model): 2 name = models.CharField("名称",max_length=100) 3 4class User(Model): 5 name = models.CharField("名称",max_length=100) 6 group = models.ForeignKey(Group, related_name="user_group") 7 8class Task(Model): 9 name = models.CharField("名称",max_length=100) 10 group = models.ForeignKey(Group, related_name="task_group") 11 status = models.IntegerField(default=0)
上記のようなモデル構成だとします。
この場合、関係性は User - Group - Task = many - 1 - many
となりますが、ここでユーザー起点で見たときにタスクに辿り着かせる方法を模索しています。
まずUserとGroupを結びつけるために
python
1users = User.objects.select_related("group").all() 2```とし、次にGroupの中にTaskを含むために 3```ここに言語を入力 4#groupに対して付与するprefetch要素 5tasks = Prefetch("task_group", 6 queryset=Task.objects.filter(status=0), 7 to_attr="tasks") 8```とすることで要素としては完成できました。 9しかしこの後にこの二つを組み合わせてuserから参照する方法がわからず困っています。 10 11理想的な形としてはそれぞれのユーザーが 12```python 13for user in users: 14 print (user.tasks) 15 #または 16 print (user.group.tasks)
とすることでタスクにアクセスできるようにしたいのですが...
どなたか良い解決策を知っていましたら、ご教授いただければと思います。
