我目前正在为使用django的客户在网站上工作。我目前遇到一个从未有过的问题。我运行了makemigrations并成功运行,然后在迁移中引发完整性错误“空约束失败”。
困扰我的领域是用户领域,它与django用户模型一对一连接。
class AuthorityUser:
"""
Represents an authority user
"""
role = models.CharField(max_length=40,verbose_name='Role')
user = models.OneToOneField(User,on_delete=models.CASCADE,verbose_name='משתמש')
authority = models.ForeignKey(Authority,null=True,verbose_name='רשות')
password_reset_token = models.CharField(max_length=40,blank=True)
active = models.BooleanField(default=True,verbose_name='פעיל')
can_create_committee = models.BooleanField(default=False)
class Meta:
# Order model instances by first name and last name
ordering = ('user__first_name','user__last_name')
def delete(self,*args,**kwargs):
"""
Delete the components before deleting the model instance
"""
self.user.delete()
super().delete(*args,**kwargs)
def save(self,**kwargs):
"""
Overrides the Model save method
"""
if '_' not in self.user.username:
# Add suffix to the user
self.user.username = f'{self.user.username}_AU{self.authority.id}'
self.user.save()
if not self.password_reset_token:
# Generate a password token
self.password_reset_token = uuid.uuid4().hex
super().save(*args,**kwargs)
django.db.utils.IntegrityError: NOT NULL constraint failed: new__authority_authorityuser.user_id