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

Это мнение, которое вы отправили 'инцидент.views.incident_types'? Почему перенаправление сразу после «фильтрации» вашего запроса? –

+0

нет, просмотр опубликован для type_list, извините, после фильтра он должен перенаправить на type_list.html. Но я сделал изменения, все еще не работая – 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 %} 

Следует иметь в виду, что у него есть странное поведение при капитализации. Я считаю, что он приоритизирует заглавные слова над некапитализированными словами вместо того, чтобы функционировать без учета регистра.

Смежные вопросы