Django forms 更改modelchoicefield django的排序顺序
如何更改ModelChoiceField billing\u公司中值的顺序 models.pyDjango 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作为其第一个参数,因此您应
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 %}