django-filter-如何解析带有后缀的字段名,例如“ _id”(动态字段名)

时间:2019-03-05 08:05:04

标签: python django django-rest-framework django-filter

我希望能够通过名称和值来解析查询字符串的参数。 django-filtersdjango-rest-framework有可能吗?

示例:/api/user/?custom_field_{id}={value}

class UserFilter(django_filters.FilterSet):
    custom_field{id} = django_filters.ModelChoiceFilter(
        queryset=CustomField.objects.all(), method="filter_by_custom_field"
    )

    def filter_by_custom_field(self, queryset, name, value):
        # How can I get access to the {id} as well as the value in here?
        pass

上面的语法是不允许的(custom_field{id}),但这是显示我要实现的目标的示例。

1 个答案:

答案 0 :(得分:0)

如果您尝试从GET / POST请求中获取参数,则需要通过在视图中处理请求来检索它们:

class Test(View):
    def dispatch(self, request, *args, **kwargs):
        vote_value = self.request.POST.get('parameter_name', 0)

GET也会发生同样的情况,只是在self.request之后更改方法名称。