Eva*_*611 24 django django-models django-forms
我有我的models.py
class Business(models.Model):
industry = models.models.ManyToManyField(Industry)
Run Code Online (Sandbox Code Playgroud)
在forms.py中
class BusinessForm(forms.ModelForm):
class Meta:
model = Business
Run Code Online (Sandbox Code Playgroud)
当我渲染表单时,行业名称出现在多个选择框中.如何按字母顺序排列行业名称?
Yuj*_*ita 65
有几种方法:
您可以基于每个表单覆盖查询集排序,设置排序元类选项,或使用排序方法覆盖模型管理器查询集.
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()
Run Code Online (Sandbox Code Playgroud)
class Industry(models.Model):
name = models.CharField(max_length=128)
class Meta:
ordering = ['name']
Run Code Online (Sandbox Code Playgroud)
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')
Run Code Online (Sandbox Code Playgroud)
如果您正在处理django管理员,还有一个名为formfield_for_manytomany的快捷方式.
| 归档时间: |
|
| 查看次数: |
9554 次 |
| 最近记录: |