如何通过Django过滤多个字段?
尝试使用协议中的特定数据源筛选所有协议数据源如何通过Django过滤多个字段?,django,django-models,foreign-keys,many-to-many,django-queryset,Django,Django Models,Foreign Keys,Many To Many,Django Queryset,尝试使用协议中的特定数据源筛选所有协议数据源 尝试使用:ProtocolDataSource.objects.filter(protocol\u data\u sources=…,protocol\u data\u sources=…),但显然出现了错误。点是数据源的名称。为了使您的相关查询\u名称更可预测,我建议在ManytoManyField中添加参数相关查询\u名称 class Protocol(BaseWithImmutableKey): name = models.CharF
尝试使用:ProtocolDataSource.objects.filter(protocol\u data\u sources=…,protocol\u data\u sources=…),但显然出现了错误。点是数据源的名称。为了使您的
相关查询\u名称
更可预测,我建议在ManytoManyField
中添加参数相关查询\u名称
class Protocol(BaseWithImmutableKey):
name = models.CharField(
max_length=200, unique=True, verbose_name='Protocol Name')
# add related_query_name
data_sources = models.ManyToManyField(
DataSource, through='ProtocolDataSource', related_query_name='protocols')
# now you can reference reversely using protocols
DataSource.objects.filter(protocols__name=...)
您可以在此处阅读更多信息您好,请同时包括您尝试的代码以及错误消息。这有助于快速解决您的问题。哦,好的,谢谢您的回复。关联查询使运行查询更容易。问题是,如果我在ProtocolDataSource上做一个过滤器,但是对于数据源对象,过滤器会是什么样子?甚至在协议中的用户对象上。对于直通部分以及其对过滤器的影响仍然感到困惑。