Django:在下拉列表中对项目进行排序(通过字段\顺序?)
我正在使用一个模板上的下拉列表。我确实想在下拉列表中按字母顺序排列,但我不知道如何得到这个 template.html:Django:在下拉列表中对项目进行排序(通过字段\顺序?),django,forms,django-templates,Django,Forms,Django Templates,我正在使用一个模板上的下拉列表。我确实想在下拉列表中按字母顺序排列,但我不知道如何得到这个 template.html: <form method="POST" enctype="multipart/form-data"> {% csrf_token %} <fieldset> {{ form|crispy }} </fieldset> <div> <button type="s
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<fieldset>
{{ form|crispy }}
</fieldset>
<div>
<button type="submit">OK</button>
</div>
</form>
def my_view(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
…
return render(request, 'xxx/template.html', {'form': form})
from django import forms
from .models import Project
class MyForm(forms.Form):
project = forms.ModelChoiceField(queryset=Project.objects)
field_order = ['name', ]
class Project(models.Model):
name = models.CharField()
…
表单在表单中定义。py:
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<fieldset>
{{ form|crispy }}
</fieldset>
<div>
<button type="submit">OK</button>
</div>
</form>
def my_view(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
…
return render(request, 'xxx/template.html', {'form': form})
from django import forms
from .models import Project
class MyForm(forms.Form):
project = forms.ModelChoiceField(queryset=Project.objects)
field_order = ['name', ]
class Project(models.Model):
name = models.CharField()
…
型号.py:
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<fieldset>
{{ form|crispy }}
</fieldset>
<div>
<button type="submit">OK</button>
</div>
</form>
def my_view(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
…
return render(request, 'xxx/template.html', {'form': form})
from django import forms
from .models import Project
class MyForm(forms.Form):
project = forms.ModelChoiceField(queryset=Project.objects)
field_order = ['name', ]
class Project(models.Model):
name = models.CharField()
…
这篇文章讨论了字段的顺序
。form.py中的行字段\u order=['name',]
无效
怎么了?您可以通过将查询更改为
queryset=Project.objects.order\u by(“名称”)
或者,如果您需要按(“-name”)反向排序,您可以通过将查询更改为
queryset=Project.objects.order\u by(“名称”)
或者,如果您需要按(“-name”)反向排序,正如文档所述,这是表单字段的排序 例如:
class MyForm(forms.Form):
project = forms.somefield
name = forms.somefield
field_order = ['name', ]
将在表格中显示项目之前的名称
您需要更改
modelcooicefield
的排序顺序,这意味着您应该更改queryset参数
forms.ModelChoiceField(Project.objects.order_by('name'))
正如文档所述,这是表单字段的排序 例如:
class MyForm(forms.Form):
project = forms.somefield
name = forms.somefield
field_order = ['name', ]
将在表格中显示项目之前的名称
您需要更改
modelcooicefield
的排序顺序,这意味着您应该更改queryset参数
forms.ModelChoiceField(Project.objects.order_by('name'))