2013-05-22 62 views
2

template.html是查詢由字母順序篩選

{% for field in types%} 
{{field}}<br /> 
{% endfor %} 

我試圖理清字母列表order.Used這type_list = Types.objects.filter(user=user.id, parent_type_id=True).order_by('title')上面以sort.I不知道我是否正確的質疑。它沒有給出任何錯誤,但功能沒有發生。需要幫助。

感謝

+0

您發佈的視圖是「incident.views.incident_types」嗎?爲什麼在篩選查詢集後直接重定向? –

+0

不,過濾後應該重定向到type_list.html.But我做了更改,仍然無法正常工作 – user2086641

+0

當您重定向您創建一個全新的請求(即重定向響應回到用戶告訴他們對重定向響應中指定的地址發出新的請求),因此預先的代碼是多餘的。 –

回答

4

如果你想按字母順序形式的選擇,你將不得不修改你在哪裏得到他們的查詢,表單內,而不是在看法,所以修改線的中__init__方法形式是這樣的:

def __init__(self, type_id, *args, **kwargs): 
    ... 
    type = Types.objects.filter(parent_type_id=type_id).order_by('title') 
    MY_CHOICES=((type.id, type.title) for type in type) 
    _type_checkbox.choices = MY_CHOICES 
    ... 

希望這有助於!

+0

這幫助我解決了另一個問題。我提出了你的答案,謝謝。 – user2086641

1

如果您只需要在渲染模板時進行排序,那麼我更喜歡簡單的dictsort

{% for field in types|dictsort:"title" %} 
{{field}}<br /> 
{% endfor %} 

請注意它在大寫字母周圍有一些奇怪的行爲。我認爲它優先使用大寫字母而非大寫字母,而不是以不區分大小寫的方式運作。