如何更改ModelChoiceField billing_company中值的顺序?
models.py
class Company(models.Model):
name = models.CharField(max_length=30, unique=True)
forms.py
billing_company = forms.ModelChoiceField(Company.objects, required=True)
感谢您的帮助。 汤姆
答案 0 :(得分:9)
ModelChoiceField
将QuerySet作为其第一个参数,因此您应该能够传递有序集:
forms.ModelChoiceField(Company.objects.order_by('-pk'), required=True)
答案 1 :(得分:0)
如果您想在模板中对其进行排序,您可以手动呈现表单并迭代选项并使用 dictsort
模板标签(或根据您喜欢的排序的任何其他模板标签)对它们进行排序,例如
{% for value, option in form.fields.billing_company.choices|dictsort:1 %}
<option value="{{ value }}">{{ option }}</option>
{% endfor %}