在我的数据库中,我想同步两个表。我使用auth_user(Django提供的默认表)表进行注册,还有另一个表用户配置文件,其中包含实体用户名,电子邮件,年龄等。在同步期间如何更新Foriegn密钥?
def get_filename(instance,filename):
return "upload_files/%s_%s" % (str(time()).replace('.','_'),filename)
def create_profile(sender, **kwargs):
if kwargs["created"]:
p = profile(username = kwargs["instance"], email=kwargs["instance"])
p.save()
models.signals.post_save.connect(create_profile, sender=User)
class profile(models.Model):
username = models.CharField(max_length = 30)
email = models.EmailField()
age = models.PositiveIntegerField(default='15')
picture = models.FileField(upload_to='get_filename')
auth_user_id = models.ForeignKey(User)
在同步期间的表格配置文件中,除了auth_user_id之外,所有列都被填充。并且出现了错误
Exception Value:
(1048, "Column 'auth_user_id_id' cannot be null")
答案 0 :(得分:1)
您必须更改表并更改允许为null的列auth_user_id_id数据类型属性。
这样的事情: -
ALTER TABLE mytable MODIFY auth_user_id_id int;
假设auth_user_id_id为int数据类型。(默认情况下列可以为空)