Django REST upload file and invalid email

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-12 03:15:45

问题


I cannot upload file with another email field, when using "multipart/form-data", please help me, thanks in advance

model.py

class UserManager(models.Manager):
    def create(self, **kwargs):
        kwargs['salt'] = None
        if 'password' in kwargs and kwargs['password']:
            kwargs['salt'] = String.random_string()
            kwargs['password'] = hashlib.md5(kwargs['password'] + kwargs['salt']).hexdigest()
        user = super(UserManager, self).create(**kwargs)
        return user

class User(models.Model):
    email = models.EmailField(max_length=100, unique=True, null=False, default=None)
    phone = models.CharField(max_length=250, unique=True, null=False, default=None)
    username = models.CharField(max_length=100, unique=True)
    password = models.CharField(max_length=255, blank=True, null=True)
    salt = models.CharField(max_length=32, blank=True, null=True)
    first_name = models.CharField(max_length=100, blank=True, null=True)
    middle_name = models.CharField(max_length=100, blank=True, null=True)
    last_name = models.CharField(max_length=100, blank=True, null=True)
    birthday = models.DateField(blank=True, null=True)
    gender = models.IntegerField(default=1)
    address = models.CharField(max_length=255, blank=True, null=True)
    avatar = models.ImageField(max_length=255, blank=True, null=True, upload_to='images/%Y/%m/%d')
    status = models.IntegerField(default=1)
    register_date = models.DateTimeField(auto_now_add=True)
    update_date = models.DateTimeField(auto_now=True, auto_now_add=True)
    objects = UserManager()

    class Meta:
        db_table = 'users'
        ordering = ('register_date', )

serializers.py

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('id', 'email', 'phone', 'username', 'password', 'salt',
                  'first_name', 'middle_name', 'last_name', 'birthday', 'gender',
                  'address', 'avatar', 'status', 'register_date', 'update_date')

view.py

class User(APIView):

    parser_classes = (MultiPartParser, FormParser, )

    def post(self, request, format=None):
        serializer = UserSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

But when I test upload via Advanced Rest Client (Chrome extension) with multipart/form-data, I get error

{"email":["Enter a valid email address."]}

How can I fix this issue, thanks so lot

来源:https://stackoverflow.com/questions/27833413/django-rest-upload-file-and-invalid-email

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!