استفاده از kwargs برای فیلتر کردن کوئری ست با شرط or در Django

زمان مطالعه: < 1 دقیقه

با سلام و درود،

برای اینکه از **kwargs به عنوان فیلتر های کوئری ست داخل جنگو استفاده کنید کد نویسی مشابه زیر خواهد بود (فیلتر روی کوئری ست در جنگو):

allowed_filters = ('x', 'y')
kwargs = {}
for key, value in request.data.items():
    if key in allowed_filters:
        kwargs.update({key: value})


try:
    access_level_request_objs = AccessLevelRequest.objects.filter(**kwargs)
except IndexError:
    pass

در نمونه کد بالا رابطه بین فیلتر ها AND می باشد اگر بخواهیم رابطه بین آنها OR باشد باید از Q و _connector استفاده کنیم، به نمونه کد زیر توجه کنید:

Q(**filter_kwargs, _connector=Q.OR)

Category: سوالات و مشکلات پایتون
Tag: جنگو

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *