所以我有一個選擇字段的ModelForm。在這個選擇字段中有大約100個條目。在這些參賽作品中,我有很多條目,比如「科羅拉多 - 科羅拉多丹佛」,我希望列表頂部有這樣的條目,這樣所有帶有「科羅拉多組織」的參賽作品都位列榜首,否則按字典順序排序。Django連接兩個查詢集在命令
我試圖使兩個獨立的查詢集(這似乎是一個壞主意,但管理的只有100個左右的條目)。似乎有很多方法來組合這兩個查詢集,但沒有維護順序(這是重點)。我已經試過這樣:
class CreateContactForm(ModelForm):
...
def __init__(self, *args, **kwargs):
super(CreateContactForm, self).__init__(*args, **kwargs)
p = models.ConstantContactList.objects.filter(
name__startswith=settings.PREF_ORGANIZATION_PREFIX
)
np = models.ConstantContactList.objects.filter(
name__regex=r'^(?!{})'.format(settings.PREF_ORGANIZATION_PREFIX)
).order_by('-name')
self.fields['cc_lists'].queryset = list(p) + list(np)
這是不行的,儘管它可能,如果有一些方法來該列表轉換回查詢集,或者,如果有一種方法去各地的queryset可能?我不確定。任何人都可以提供我應該做什麼的線索?
你試過_without_兩個'list' coersions?我現在無法訪問Django進行測試,但它可能只是在SQL中創建一個'UNION()'來組合兩個查詢集'p'和'np'。 – C14L
@ C14L'不支持的操作數類型爲+:'QuerySet'和'QuerySet' – Anupam