相关疑难解决方法(0)

Django Admin:引用User的ForeignKey和ManyToManyField关系的排序

我有一个应用程序,它使用Django UserProfile来扩展内置的Django User模型.看起来有点像:

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    # Local Stuff
    image_url_s = models.CharField(max_length=128, blank=True)
    image_url_m = models.CharField(max_length=128, blank=True)

    # Admin
    class Admin: pass
Run Code Online (Sandbox Code Playgroud)

我在我的模型中添加了一个新类:

class Team(models.Model):
    name = models.CharField(max_length=128)
    manager = models.ForeignKey(User, related_name='manager')
    members = models.ManyToManyField(User, blank=True)
Run Code Online (Sandbox Code Playgroud)

它已注册到管理员:

class TeamAdmin(admin.ModelAdmin):
    list_display = ('name', 'manager')

admin.site.register(Team, TeamAdmin)
Run Code Online (Sandbox Code Playgroud)

唉,在管理界面中,当我从下拉框中选择管理员,或通过多选字段设置团队成员时,他们按用户数字ID排序.对于我的生活,我无法弄清楚如何对这些进行排序.

我有一个类似的课:

class Meta:
    ordering = ['name']
Run Code Online (Sandbox Code Playgroud)

这很棒!但我并不"拥有"这个User课程,当我尝试这个技巧时UserAdmin:

class Meta:
    ordering = ['username']
Run Code Online (Sandbox Code Playgroud)

我明白了:

django.core.management.base.CommandError: One or more models did not validate: events.userprofile: "ordering" refers to …

python sorting django admin user-profile

19
推荐指数
2
解决办法
2万
查看次数

在django auth中重新排序用户

我有一个对内置用户模型有一个ForeignKey的模型django.contrib.auth,我对管理员中的选择框总是按用户的主键排序而感到沮丧.

我更倾向于按字母顺序按用户名排序,虽然我的本能不是想要摆弄Django的内部,但我似乎无法找到一种更简单的方法来重新排序用户.

我能想到的最简单的方法是进入我的Django安装并添加

ordering = ('username',)
Run Code Online (Sandbox Code Playgroud)

到User模型的Meta类.

有什么样的monkeypatching我可以做或任何其他侵入性较小的方式来修改用户模型的顺序?

或者,任何可以通过改变而破坏的东西都可以吗?

django django-admin

12
推荐指数
2
解决办法
4629
查看次数

标签 统计

django ×2

admin ×1

django-admin ×1

python ×1

sorting ×1

user-profile ×1