gem*_*asr 5 python forms django
说我有一个模型:
class Option(models.Model):
name = models.CharField(max_length=60)
Run Code Online (Sandbox Code Playgroud)
我想填充一个ModelChoiceField使用其值作为选择集:
my_model_form_field = forms.ModelChoiceField(queryset = Option.objects.all(), widget = forms.Select())
Run Code Online (Sandbox Code Playgroud)
如果我这样做,我会获得一个带有以下选项的选择小部件:
- Yes
- No
- I don't know
- I don't want to answer
Run Code Online (Sandbox Code Playgroud)
问题是我希望"我不知道"成为选择中的第一个选项(因为它是最常选择的选项).
是否可以使用此自定义顺序获取具有选择集(或获取查询集)的选择窗口小部件(我的意思是,只是为了放置第一个选项?)?
我可以选择使用Javascript它来解决它,但最好使用它来解决它Django.
您可以向模型添加排序字段,然后按顺序对查询集进行排序.
class Option(models.Model):
name = models.CharField(max_length=60)
ordering = models.IntegerField()
my_model_form_field = forms.ModelChoiceField(
queryset=Option.objects.all().order_by('ordering'),
widget=forms.Select())
Run Code Online (Sandbox Code Playgroud)
如果ordering为模型设置选项,则甚至不需要order_by().
class Option(models.Model):
name = models.CharField(max_length=60)
ordering = models.IntegerField()
class Meta:
ordering = ['ordering']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1204 次 |
| 最近记录: |