Django forms 更改modelchoicefield django的排序顺序

Django forms 更改modelchoicefield django的排序顺序,django-forms,Django Forms,如何更改ModelChoiceField billing\u公司中值的顺序 models.py class Company(models.Model): name = models.CharField(max_length=30, unique=True) forms.py billing_company = forms.ModelChoiceField(Company.objects, required=True) 谢谢你的帮助。 Tom将QuerySet作为其第一个参数,因此您应

如何更改ModelChoiceField billing\u公司中值的顺序

models.py

class Company(models.Model):
    name = models.CharField(max_length=30, unique=True)
forms.py

billing_company = forms.ModelChoiceField(Company.objects, required=True)
谢谢你的帮助。 Tom将QuerySet作为其第一个参数,因此您应该能够传递有序集:

forms.ModelChoiceField(Company.objects.order_by('-pk'), required=True)

如果要在模板中对其进行排序,可以手动呈现表单并迭代选项,然后使用templatetag(或根据需要排序的任何其他templatetag)对其进行排序,例如

{%表示值,选项位于form.fields.billing_company.choices | dictsort:1%}
{{option}}
{%endfor%}
{% for value, option in form.fields.billing_company.choices|dictsort:1 %}
    <option value="{{ value }}">{{ option }}</option>
{% endfor %}