Fra*_*ham 86 django django-models django-queryset
我正在尝试根据外键的特定字段的值过滤Django中的表.
例如,我有两个模型 -
class Asset(models.Model):
name = models.TextField(max_length=150)
project = models.ForeignKey('Project')
class Project(models.Model):
name = models.TextField(max_length=150)
Run Code Online (Sandbox Code Playgroud)
我想根据相关项目的名称过滤我的资产清单.
目前我正在执行两个查询:
project_list = Project.objects.filter(name__contains="Foo")
asset_list = Asset.objects.filter(desc__contains=filter,
project__in=project_list).order_by('desc')
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法在主查询中指定这种过滤方式?
Fra*_*rth 130
Asset.objects.filter( project__name__contains="Foo" )
Mic*_*ene 14
自从该queryset-refactor
分支在1.0之前登陆以来,这已经成为可能. 机票4088暴露了这个问题.这应该工作:
Asset.objects.filter(
desc__contains=filter,
project__name__contains="Foo").order_by("desc")
Run Code Online (Sandbox Code Playgroud)
在Django的多到一个文档有这一点,并使用Model API以下外键的其他例子.