kev*_*son 3 python django django-orm
我有几个模型设置,如下所示:
Group(models.Model):
name = models.TextField(max_length=255)
Thing(models.Model):
location = models.TextField(max_length=255)
group = models.ForeignKey(Group)
Run Code Online (Sandbox Code Playgroud)
这只是说明关系的一个例子,所以请原谅任何语法错误。
我的问题是,如何找到具有一组特定位置的组?我应该能够使用以下方法访问与组关联的事物:
Group.thing_set
Run Code Online (Sandbox Code Playgroud)
对?那么有什么方法可以根据thing_set中的项目进行过滤吗?我在想一些类似的事情。
Group.objects.filter(thing_set.location in ["Location A", "Location B"]).all()
Run Code Online (Sandbox Code Playgroud)
希望这能将包含来自位置 A 和位置 B 的内容的每个组都返回给我。任何建议或朝正确方向的推动都会非常有帮助!
谢谢。
根据文档,您必须使用模型名称作为查询运算符:
要引用“反向”关系,只需使用模型的小写名称。
模型.py:
from django.db import models
class Group(models.Model):
name = models.TextField(max_length=255)
class Thing(models.Model):
location = models.TextField(max_length=255)
group = models.ForeignKey(Group)
Run Code Online (Sandbox Code Playgroud)
视图.py:
from django.views.generic import ListView
class ReverseFK(ListView):
model = Group
def get_queryset(self):
g = Group.objects.create(name="example")
g.save()
Thing.objects.create(location="here", group=g)
return Group.objects.filter(thing__location__in=["here","there"])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9916 次 |
| 最近记录: |