【发布时间】:2019-07-07 13:32:27
【问题描述】:
我正在使用 Django 2.x 和 Django REST Framework 和 Django REST Auth
默认情况下,Django REST Auth 为 Profile Details 提供一个端点,该端点从 User 模型返回经过身份验证的用户的详细信息。
默认视图提供字段
fields = ('pk', 'username', 'email', 'first_name', 'last_name')
端点是/api/user/
我想在序列化程序中添加更多字段,因为我正在使用自定义用户模型并添加了更多字段。
我是否需要创建自定义视图并重新定义序列化程序类,或者我可以扩展默认提供的视图和序列化程序以添加额外的字段?
【问题讨论】:
-
“默认视图”是什么意思? DRF 提供的哪个视图类可以做到这一点?如果您有自定义 User 模型,则应使用
django.contrib.auth.get_user_model()获取User模型(这是您的自定义模型),然后您的视图可以访问您的所有User模型字段。 -
它的
UserDetailsView来自rest_auth/views。用正确的引用更新了问题。 -
这不是 DRF 的一部分。您显然正在使用 django-rest-auth,它是 DRF 之上的一个附加包。
-
我确定 rest-auth 是一个优秀的 Django 公民,并且使用
get_user_model()而不是django.contrib.auth.models.User,因此视图显示您的自定义User模型。只需将其子类化以添加您自己的serializer_class与您想要的字段。检查 rest_auth 源代码。
标签: django django-rest-framework django-rest-auth