如何在 Django 中按字母顺序对下拉列表进行排序



我正在尝试按字母顺序对表单字段中的下拉值进行排序

下拉列表是字段 = 策略

我尝试使用.order_by来解决此错误,但它似乎无法解决它

下面是我尝试的代码

class AddForm(forms.ModelForm):
class Meta:
model = Line
fields = ('analyst','strategy','conviction','startdate','startvalue','target','review','reason','rationale')
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user', None)
super(AddForm, self).__init__(*args, **kwargs)
self.fields['Strategy'].queryset = strategy.objects.order_by('name')

我收到缩进错误,服务器停止运行...我也尝试使用

strategy = forms.ModelChoiceField(queryset=strategy.objects.order_by('name'))

没用!,我哪里出错了?

class AddForm(forms.ModelForm):
class Meta:
model = Line
fields = ['analyst','strategy','conviction','startdate','startvalue','target','review','reason','rationale']
def __init__(self, *args, **kwargs):
super(AddForm, self).__init__(*args, **kwargs)
self.user = kwargs.pop('user', None)
self.fields['strategy'].queryset = self.fields['strategy'].queryset.order_by('name')

试试这个,你也可以看看这个SO答案,这可能有助于理解。

您可以在模型Meta类上订购

但正如您的错误所说,您在同一块中使用 TAB 和空格缩进您的代码。

在 ide 上启用选项卡和空格可视化并修复此问题。基本上,您必须在制表符或空格块之间进行选择。

缩进的Python(和其他语言)通常会抱怨如果你这样做。

最新更新