相关疑难解决方法(0)

如何在django admin中获取过滤的查询集?

我在Django管理员中有许多不同的过滤器:

class OrderAdmin(admin.ModelAdmin):
    ...
    list_filter = ('field_1', 'field_2', 'field_3', ... , 'field_N')
    ...
Run Code Online (Sandbox Code Playgroud)

在调用changelist_viewparent之前,我需要在我的重写方法中获取过滤的查询集changelist_view:

class OrderAdmin(admin.ModelAdmin):
    ...
    def changelist_view(self, request, extra_content=None):
        # here i need filtered queryset and I don`t know 
        # which filters have been applied
        return super().changelist_view(request, extra_context)
    ...
Run Code Online (Sandbox Code Playgroud)

如果我打电话get_queryset之前,superchangelist_view它返回的查询集不带过滤器.

python django

7
推荐指数
2
解决办法
3255
查看次数

Django:从GET请求生成查询集

我使用GET方法设置了Django表单.每个值对应于Django模型的属性.什么是生成查询的最优雅方式?目前这是我在视图中所做的:

def search_items(request):
    if 'search_name' in request.GET:
        query_attributes = {}

        query_attributes['color'] = request.GET.get('color', '')
        if not query_attributes['color']: del query_attributes['color']

        query_attributes['shape'] = request.GET.get('shape', '')
        if not query_attributes['shape']: del query_attributes['shape']

        items = Items.objects.filter(**query_attributes)
Run Code Online (Sandbox Code Playgroud)

但我很确定有更好的方法可以解决这个问题.

django django-queryset django-views

4
推荐指数
1
解决办法
3146
查看次数

标签 统计

django ×2

django-queryset ×1

django-views ×1

python ×1