gpt4 book ai didi

django - ModelForm ManytoManyField DJANGO 中的排序选择

转载 作者:行者123 更新时间:2023-12-03 10:47:02 26 4
gpt4 key购买 nike

我的models.py中有

class Business(models.Model):
industry = models.models.ManyToManyField(Industry)

在forms.py中
class BusinessForm(forms.ModelForm):
class Meta:
model = Business

当我呈现表单时,行业名称出现在多选框中。如何按字母顺序制作行业名称?

最佳答案

有几种方式:

您可以基于每个表单覆盖查询集排序,设置排序元类选项,或使用排序方法覆盖模型管理器查询集。

覆盖全局模型管理器查询集

class IndustryManager(models.Manager):
def get_query_set(self):
return (
super(IndustryManager, self)
.get_query_set()
.order_by('name')
)

class Industry(models.Model):
name = models.CharField(max_length=128)
objects = IndustryManager()

指定全局元选项排序
class Industry(models.Model):
name = models.CharField(max_length=128)

class Meta:
ordering = ['name']

按表格订购
class MyForm(forms.ModelForm):
class Meta:
model = Business

def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['industry'].queryset = Industry.objects.order_by('name')

如果您正在与 django 管理员打交道,还有一个名为 formfield_for_manytomany 的快捷方式。

关于django - ModelForm ManytoManyField DJANGO 中的排序选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6541477/

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