gpt4 book ai didi

python - Django ModelChoiceField 查询集的自定义顺序

转载 作者:太空狗 更新时间:2023-10-30 00:54:34 25 4
gpt4 key购买 nike

假设我有一个模型:

class Option(models.Model):
name = models.CharField(max_length=60)

我想使用它的值作为选择集来填充 ModelChoiceField:

my_model_form_field = forms.ModelChoiceField(queryset = Option.objects.all(), widget = forms.Select())

如果这样做,我将获得一个带有以下选项的选择小部件:

- Yes
- No
- I don't know
- I don't want to answer

问题是我希望“我不知道”成为选择中的第一个选项(因为它是被选中最多的选项)。

是否可以使用此自定义顺序(我的意思是,只是将其中一个选项放在首位?)获得带有选择集的选择小部件(或获得查询集)?

我可以选择使用 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())

如果您设置 ordering选项,您甚至不需要 order_by()

class Option(models.Model):
name = models.CharField(max_length=60)
ordering = models.IntegerField()
class Meta:
ordering = ['ordering']

关于python - Django ModelChoiceField 查询集的自定义顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37007933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com