我想將 Django admin 中的所有 Groups 字段重命名為 Roles 字段。但仍有一些部分沒有改變。我已使用此代碼(models.py)成功地將組重命名為角色:class Role(Group): class Meta: proxy = True app_label = 'auth' verbose_name = _('role') verbose_name_plural = _('roles') def __str__(self): return self.name但是用戶中的一個字段仍然具有名稱“組”。 請參閱隨附的屏幕截圖。我知道它與django.contrib.auth.models中的 PermissionsMixin 有關(guān),其中包含在 UserAdmin 中調(diào)用的 ManyToManyField 命名組。class PermissionsMixin(models.Model): ... groups = models.ManyToManyField( Group, verbose_name=_('groups'), blank=True, help_text=_( 'The groups this user belongs to. A user will get all permissions ' 'granted to each of their groups.' ), related_name="user_set", related_query_name="user", ) ...我想知道如何重命名這個模型字段。編輯: 這是 UserAdmin 的代碼: class UserAdmin(BaseUserAdmin): form = UserAdminChangeForm add_form = UserAdminCreationForm list_display = ('username',) fieldsets = ( (None, {'fields': ('username', 'password',)}), (None, {'fields': ('groups',)}), ) add_fieldsets = ( (None, { 'classes': ('wide',), 'fields': ('username', 'password1', 'password2')} ), ) filter_horizontal = ('groups',)
1 回答

慕標(biāo)琳琳
TA貢獻(xiàn)1830條經(jīng)驗 獲得超9個贊
您幾乎可以肯定不想重命名模型字段,而只需更改管理員中的標(biāo)簽。您可以通過自定義管理表單來實現(xiàn)這一點。以下幾行應(yīng)該可以解決問題:
class UserAdmin(BaseUserAdmin):
# ...
def get_form(self, request, obj=None, change=False, **kwargs):
kwargs['labels'] = {'groups': 'roles'}
return super().get_form(request, obj=obj, change=change, **kwargs)
添加回答
舉報
0/150
提交
取消