我有我的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)
当我渲染表单时,行业名称出现在多个选择框中.如何按字母顺序排列行业名称?
这是我的模型的(非常)简化版本:
实验室/ models.py
class Lab(Model):
professor = ForeignKey('authors.Author')
Run Code Online (Sandbox Code Playgroud)
作者/ models.py
class Author(Model):
name = CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)
在Django管理员中,当我添加或更新实验室时,会自动生成并显示包含每位教授的下拉列表.问题是这个列表很长,并没有按字母顺序排列.我希望教授下拉列表按"名称"字段按字母顺序排序.
我怎样才能做到这一点?
我有一个对内置用户模型有一个ForeignKey的模型django.contrib.auth,我对管理员中的选择框总是按用户的主键排序而感到沮丧.
我更倾向于按字母顺序按用户名排序,虽然我的本能不是想要摆弄Django的内部,但我似乎无法找到一种更简单的方法来重新排序用户.
我能想到的最简单的方法是进入我的Django安装并添加
ordering = ('username',)
Run Code Online (Sandbox Code Playgroud)
到User模型的Meta类.
有什么样的monkeypatching我可以做或任何其他侵入性较小的方式来修改用户模型的顺序?
或者,任何可以通过改变而破坏的东西都可以吗?