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


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

查看所有标签

猜你喜欢:

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

The Lean Startup

The Lean Startup

Eric Ries / Crown Business / 2011-9-13 / USD 26.00

更多中文介绍:http://huing.com Most startups fail. But many of those failures are preventable. The Lean Startup is a new approach being adopted across the globe, chan ging the way companies are built and ......一起来看看 《The Lean Startup》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具