无法在 Django 中对用户 ForeignKey 进行排序
Unable to sort a user ForeignKey in Django
所以我基本上有一个 Django 表单来更改项目的所有权,但用户以非字母顺序出现,而且目前还无法控制。
class myModel(models.Model):
owner = models.ForeignKey(User, null=True, blank=True)
因为我使用的是内置模型,所以我一辈子都想不出如何在调用下面的表单时让 "owner" 字段按用户名排序。
class OwnerChange(ModelForm):
required_css_class = 'required'
class Meta:
model = myModel
fields = ['owner']
在您的模型表单中可以轻松覆盖查询集。
class OwnerChange(forms.ModelForm):
required_css_class = 'required'
## Update the queryset to order by username
owner = forms.ModelChoiceField(queryset=User.objects.order_by('username'))
class Meta:
model = Cluster
fields = ['owner']
不要忘记将导入更新为
from django import forms
您可以使用另一个选项来不更新所有表单。但是,如果您不想按用户名
对所有查询集中模型中的所有实例进行排序,则上述示例很有用
class myModel(models.Model):
owner = models.ForeignKey(User, null=True, blank=True)
class Meta:
ordering = ['owner__username']
所以我基本上有一个 Django 表单来更改项目的所有权,但用户以非字母顺序出现,而且目前还无法控制。
class myModel(models.Model):
owner = models.ForeignKey(User, null=True, blank=True)
因为我使用的是内置模型,所以我一辈子都想不出如何在调用下面的表单时让 "owner" 字段按用户名排序。
class OwnerChange(ModelForm):
required_css_class = 'required'
class Meta:
model = myModel
fields = ['owner']
在您的模型表单中可以轻松覆盖查询集。
class OwnerChange(forms.ModelForm):
required_css_class = 'required'
## Update the queryset to order by username
owner = forms.ModelChoiceField(queryset=User.objects.order_by('username'))
class Meta:
model = Cluster
fields = ['owner']
不要忘记将导入更新为
from django import forms
您可以使用另一个选项来不更新所有表单。但是,如果您不想按用户名
对所有查询集中模型中的所有实例进行排序,则上述示例很有用class myModel(models.Model):
owner = models.ForeignKey(User, null=True, blank=True)
class Meta:
ordering = ['owner__username']