Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.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
Python 如何将django查询筛选器链接到按特定条件进行条件筛选_Python_Django - Fatal编程技术网

Python 如何将django查询筛选器链接到按特定条件进行条件筛选

Python 如何将django查询筛选器链接到按特定条件进行条件筛选,python,django,Python,Django,我有一个Django页面,显示从数据库表中的行生成的表。除了该表之外,还有表单中的筛选条件,因此用户可以按不同的条件进行搜索。当用户尝试按所选标准进行筛选时,我需要在视图中选择性地筛选数据库调用。例如,这就是我所尝试的: user_profiles = UserProfile.objects.filter(some_base_criteria=True).exclude(user__id__in=some_ids) if request.method == "POST":

我有一个Django页面,显示从数据库表中的行生成的表。除了该表之外,还有表单中的筛选条件,因此用户可以按不同的条件进行搜索。当用户尝试按所选标准进行筛选时,我需要在视图中选择性地筛选数据库调用。例如,这就是我所尝试的:

user_profiles = UserProfile.objects.filter(some_base_criteria=True).exclude(user__id__in=some_ids)

    if request.method == "POST":
        gender = request.POST["gender"]
        if gender != "any":
            user_profiles.filter(gender=gender)
这并不像预期的那样运行,因为它似乎是将这两个过滤条件放在一起,而不是将它们放在一起


如何将多个筛选条件组合在一起,而不将所有选项放在一个长筛选器中,因为筛选器可能需要也可能不需要任何给定查询的特定条件?

此行无效:

user_profiles.filter(gender=gender)
您必须重新分配结果:

user_profiles = user_profiles.filter(gender=gender)

使用来自用户的变量(直接来自request.POST)是一种不好的做法。您必须创建表单,验证,然后使用dict form.com中的值_data@mrvol我已经在一些地方看到了这一点,但我发现在Django表单上获得良好的格式是很困难的,因为您实际上没有列出模板中单独呈现的字段。好了,现在我平静了=)