相关疑难解决方法(0)

如何在Django查询中动态提供查找字段名称?

我想在Django中的Model的几个字段中查找某个字符串.理想情况下,它会类似于:

keyword = 'keyword'
fields = ['foo', 'bar', 'baz']
results = []
for field in fields:
    lookup = "%s__contains"
    results.append(Item.objects.filter(lookup=keyword))
Run Code Online (Sandbox Code Playgroud)

当然这不起作用,因为"查找"无法解析为字段.有没有其他方法可以做到这一点?

django django-queryset

19
推荐指数
3
解决办法
7545
查看次数

按字典的Django过滤模型

如何使用Dictionary而不是方法参数对Django模型进行过滤?这就是我在这里:

class StoreView(TemplateView):

    def get(self, request):

        # A bunch of gets
        sort = request.GET.get('sort')
        sort_price = request.GET.get('sort_price')
        sort_mfr_method = request.GET.get('mfr_method')

        # The params tpsort by
        sort_params = {}

        if sort is not None:
            sort_params['sort'] = sort

        if sort_price is not None:
            sort_params['sort_price'] = sort_price

        if sort_mfr_method is not None:
            sort_params['sort_mfr_method'] = sort_mfr_method

        # The Model Query
        design_list = models.Design.objects.filter(sort_params)

        # etc...
Run Code Online (Sandbox Code Playgroud)

Side Question,有没有比我上面做的更好的设置字典值的方法?比如三元,但是如果不存在那么价值就不存在了吗?

sort_params['sort'] = sort if not None else ''
Run Code Online (Sandbox Code Playgroud)

django django-models

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

django ×2

django-models ×1

django-queryset ×1