Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过Django过滤多个字段?_Django_Django Models_Foreign Keys_Many To Many_Django Queryset - Fatal编程技术网

如何通过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上做一个过滤器,但是对于数据源对象,过滤器会是什么样子?甚至在协议中的用户对象上。对于直通部分以及其对过滤器的影响仍然感到困惑。