Django完整性错误"列' section_id'不能为空"

时间:2017-10-05 04:30:12

标签: python mysql django

我在Django中看到了很多关于这个错误的问题,但我感到很茫然,因为据我所知,我的数据库中的表没有 section_id 列。当用户尝试注册并且 views.py 尝试创建用户时,我收到错误。我最近更改了" Profile"我的应用程序中的模型(配置文件对象与用户对象一起自动创建)具有部分属性而不是 section_id 属性,但我重置了迁移并重新创建了数次数据库。我认为这可能是进行迁移的问题,但我真的不知道。

以下是曾经具有 section_id 属性的配置文件模型:

class Profile(models.Model):
    """
    An extension of the built-in Django user model to allow for the different types of users
    """
    USER_TYPES = (
        ('S', 'Student'),
        ('I', 'Instructor'),
        ('C', 'Client')
    )
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    user_type = models.CharField(max_length=1, choices=USER_TYPES)
    section = models.ForeignKey(Section, default=None)

@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)

@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
    if instance.is_staff != 1:
        instance.profile.save()

以下是引发错误的代码:

new_user = User.objects.create_user(email, email=email, password=password)

1 个答案:

答案 0 :(得分:0)

就像Avinash Raj所说的那样,将 section 属性设置为空白和null为真有效:

section = models.ForeignKey(Section, blank=True, null=True)