django - 我收到完整性错误,在 django 中将数据发送到 POST api 时
问题描述
当我将日期发送到我的 api 时,它会引发以下错误
IntegrityError at /api/add/
NOT NULL constraint failed: api_userinfo.user_id
网址.py
path('add/',views.UserAdditionalView.as_view())
模型.py
class User(AbstractUser):
# username = None
email = models.EmailField(verbose_name='email',max_length=50,unique=True)
#phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$')
#phone = PhoneNumberField(unique=True,blank=False,null=False)
phone = models.CharField(max_length=17,blank=True)
REQUIRED_FIELDS = [
'first_name',
'last_name',
'phone',
'username',
]
USERNAME_FIELD = 'email'
def get_username(self):
return self.email
class UserInfo(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE)
address = models.CharField(max_length=50)
zipcode = models.CharField(max_length=20)
def __str__(self):
return str(self.user)
我的观点是 views.py
class UserAdditionalView(generics.ListCreateAPIView):
queryset = UserInfo.objects.all()
serializer_class = UserAdditionalSerializers
序列化程序.py
class UserCreateSerializer(UserCreateSerializer):
class Meta(UserCreateSerializer.Meta,):
model = User
fields = (
'id',
'email',
'username',
'password',
'first_name',
'last_name',
'phone',
)
class UserAdditionalSerializers(serializers.ModelSerializer):
user = UserCreateSerializer(read_only=True)
class Meta:
model = UserInfo
fields = (
'user',
'address',
'zipcode',
)
我正在尝试通过 api.i 将更多用户信息添加到数据库中。我使用 djoser 来注册用户。每当我尝试通过邮递员添加用户时,它都会抛出 IntegrityError 。我找不到解决方案
解决方案
就像我怀疑你在readonly=True
这里
user = UserCreateSerializer(read_only=True)
我认为这可能是问题所在
推荐阅读
- xamarin - 通过 Xamarin for Android 中的 Web 链接处理深层链接
- linux - 获取每个ip地址的前3行/ifconfig接口命令Linux
- winbugs - WinBugs 中的“无效或意外令牌扫描”模型错误
- excel - 如何通过 VBA 自动引用“辅助功能(System32\oleacc.dll)”
- chatbot - 我们如何知道客户所说的是否符合意图?
- python - 在虚拟环境python 2.7中安装Tensorflow
- pimcore-v5 - 我们可以在 pimcore 5 中上下移动数据对象吗,默认情况下它是升序的?
- image - XPDL 到图像转换器
- php - 将 PHP 会话数据保存到 mysql db
- java - 如何多次运行 TestNG 套件