小编Owo*_*day的帖子

create_user() 缺少 1 个必需的位置参数:“用户名”

我删除了username字段,因为我希望用户能够使用他们的电子邮件地址登录,所以我在我的models.py

class CustomUser(AbstractUser):
    USER_TYPE = ((1, 'HOD'), (2, 'Staff'), (3, 'Student'))
    username = None
    email = models.EmailField(unique=True)
    user_type = models.CharField(default=1, choices=USER_TYPE, max_length=1)
    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = []


class Student(models.Model):
    admin = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
    gender = models.CharField(max_length=1, choices=GENDER)
    address = models.TextField()
    profile_pic = models.ImageField(upload_to='media')
    session_start_year = models.DateField(null=True)
    session_end_year = models.DateField(null=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now_add=True)

Run Code Online (Sandbox Code Playgroud)

在我的views.py,我尝试过:

user = CustomUser.objects.create_user(email=email, password=password, user_type=3, first_name=first_name, last_name=last_name)
Run Code Online (Sandbox Code Playgroud)

但我的create_user() 缺少 1 个必需的位置参数:'用户名' 我该如何解决这个问题?

python django django-models django-users django-custom-user

3
推荐指数
1
解决办法
2206
查看次数

如何通过文件上传在 Laravel API 中使用 PUT 方法

阅读此 SO链接后

PUT 最常用于更新功能,PUT 到已知资源 URI,请求正文包含原始资源的最新更新表示。

从这个答案

...我们需要再次发送数据的所有参数。

在我的控制器中,我有:

$student = Student::find($student_id);
$student->username = $request->username;
$student->email = $request->email;
$student->password = $request->password;
$path = $request->file('passport')->store('upload');
$student->passport = $path;
Run Code Online (Sandbox Code Playgroud)

我曾经对POST方法使用过相同的代码并且它有效,但是在将它用于 API 时,我使用了 POSTMANform-data并且必须$request->all()null. 有人说我应该使用,x-www-form-urlencoded但这不允许文件上传。

api put laravel

3
推荐指数
2
解决办法
1890
查看次数