最近我在django模型中添加了OneToOneField,我在此字段中将None设置为默认值.然后我收到了这个错误:
django.db.utils.IntegrityError: NOT NULL constraint failed: user_myuser.album_id
型号:
class MyUser(models.Model):
username = models.CharField(unique=True, max_length=25)
first_name = models.CharField(max_length=50, default='')
last_name = models.CharField(max_length=70, default='')
register_date = models.DateTimeField(default=timezone.now)
update_at = models.DateTimeField(auto_now=True)
# the default value problem is here
album = models.OneToOneField(Album, auto_created=True,
on_delete=models.CASCADE, default=None)
Run Code Online (Sandbox Code Playgroud)
这是专辑模型:
class Album(models.Model):
name = models.CharField(max_length=100, null=True)
author = models.CharField(max_length=100, null=True)
picture_address = models.ImageField(upload_to=album_upload_destination, null=True)
creation_year = models.IntegerField(default=-1)
rate = models.IntegerField(default=0)
timestamp = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)
因为NOT NULL约束失败因此错误.
要么做 null=True
album = models.OneToOneField(Album,on_delete=models.CASCADE, null=True)
Run Code Online (Sandbox Code Playgroud)
或使用信号将用户与相册相关联.
| 归档时间: |
|
| 查看次数: |
2617 次 |
| 最近记录: |