以Django 3.2 檔案為例,我需要使用這樣的引數.filter:
Q(question__startswith='Who') | Q(question__startswith='What')
在我的情況下,需要將我在 views.py via 中獲得的每個用戶選擇轉換request.META['QUERY_STRING']為它自己的Q()物件。
如果我嘗試從該引數串列創建 Q 物件,它將不起作用,因為|將被評估。這似乎必須是一個已解決的問題,但我還沒有找到答案。感謝您的任何建議。
uj5u.com熱心網友回復:
Q您可以在回圈中構建一個復雜物件 - 使用ORq_obj |= Q(...)添加另一個物件Q
selections = ['Who', 'What']
or_expr = Q()
for selection in selections:
or_expr |= Q(question__startswith=selection)
MyModel.objects.filter(or_expr)
uj5u.com熱心網友回復:
使用正則運算式可能是一個簡單的選擇:
Model.objects.filter(question__iregex="^(What|Who).*"gm)
uj5u.com熱心網友回復:
您可以使用 distnict()
.filter(Q(question__startswith='Who') | Q(question__startswith='What')).distnict()
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/498000.html
標籤:django
上一篇:將變數傳遞給django中的模板
