首页 > 解决方案 > 如何将 Django AbstractUser 组更改为字符串

问题描述

我在 Django Admin 中创建了一些组,但是每当我将用户添加到其中一个组时,只有组 ID 显示在我的 API 端点内。有没有办法显示字符串名称?

将自己加入董事

它在端点中显示为 1

因此,我希望该字段不是 1,而是“Directors”。它与扩展 AbstractUser 模型有什么关系吗?

对于我的用户信息,这就是我现在所拥有的一切:

class User(AbstractUser):
   

序列化程序.py

from .models import User
class UserSerializer(serializers.ModelSerializer):
    class Meta:
        exclude = ["username", "password"]
        model = User

标签: djangodjango-rest-frameworkdjango-users

解决方案


您可以使用SlugRelatedField[drf-doc]来序列化组:

from .models import User

class UserSerializer(serializers.ModelSerializer):
    # serialize groups with "slugs" ↓
    groups = serializers.SlugRelatedField(
        many=True,
        slug_field='name'
     )

    class Meta:
        exclude = ['username', 'password']
        model = User

推荐阅读