python – Django REST框架创建自定义用户

栏目: Python · 发布时间: 7年前

内容简介:代码日志版权声明:翻译自:http://stackoverflow.com/questions/19772457/django-rest-framework-creating-custom-user

我在Django领域是新的,但看到有很多“魔术”在那里.我正在使用Django REST框架并创建允许免费用户注册的应用程序.我的用户需要一些Django用户不可用的其他字段.所以我googled扩展用户.有一个想法,应该通过创建这样的东西来完成

class MyUser(models.Model):
    user = models.ForeignKey(User, unique=True)
    city = models.CharField(max_length=50, blank=True, default='')

这很好,但我有这个序列化器

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = MyUser
        fields = ('id', 'username', 'password', 'first_name', 'last_name', 'email', 'city')

所以,问题是这个串行器在这里做了一些“魔术”.它试图找出模型应该有哪些领域?

我想让用户在这里列出字段,这些字段在用户和“城市”是新的自定义字段. Serializer没有得到它应该在用户模型内.

我在这里缺少什么?如何告诉这个串行器,我想要一些内部用户?我也需要克里特岛的用户.

好的,几件事情.您要为您的用户型号扩展创建一个OneToOneField.

class MyUser(models.Model):
    user = models.OneToOneField(User)
    city = models.CharField(max_length=50, blank=True, default='')

现在,Django Rest Framework的强大功能是可以构建序列化程序,以便在序列化时从这两种模型中获取数据.

class UserSerializer(serializers.ModelSerializer):
    city = serializers.CharField(source='myuser.city')
    class Meta:
        model = User
        fields = ('id', 'username', 'password', 'first_name', 'last_name', 'email', 'city')

最后,我们是您创建用户,因为您正在使用自定义字段,您需要实现自己的restore_object(),它们根据输入数据构建两个模型.

此外,在Django中创建用户有所不同,您需要调用create_user()并提供一个散列的密码,因此它不像从串行器存储字段那么简​​单.

代码日志版权声明:

翻译自:http://stackoverflow.com/questions/19772457/django-rest-framework-creating-custom-user


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

娱乐至死

娱乐至死

[美] 尼尔·波兹曼 / 章艳 / 广西师范大学出版社 / 2011-6 / 29.80元

《娱乐至死》是对20世纪后半叶美国文化中最重大变化的探究和哀悼:印刷术时代步入没落,而电视时代蒸蒸日上;电视改变了公众话语的内容和意义;政治、宗教、教育和任何其他公共事务领域的内容,都不可避免的被电视的表达方式重新定义。电视的一般表达方式是娱乐。一切公众话语都日渐以娱乐的方式出现,并成为一种文化精神。一切文化内容都心甘情愿地成为娱乐的附庸,而且毫无怨言,甚至无声无息,“其结果是我们成了一个娱乐至死......一起来看看 《娱乐至死》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换