【问题标题】:You are trying to add a non-nullable field 'name' to comment without a default您正在尝试添加一个不可为空的字段“名称”以在没有默认值的情况下进行评论
【发布时间】:2021-08-25 15:12:26
【问题描述】:

错误``您正在尝试添加一个不可为空的字段“名称”以在没有默认值的情况下进行评论;我们不能这样做(数据库需要一些东西来填充现有的行)。 请选择一个修复:

  1. 现在提供一次性默认值(将在所有现有行上设置此列的空值)
  2. 退出,让我在 models.py 中添加一个默认值 选择一个选项:```

models.py


    from django.db import models
    from django.urls import reverse
    from django.contrib.auth.models import User
    from django.contrib.contenttypes.models import ContentType
    
    
    
    
    class Post(models.Model):
        published = None
        title = models.CharField(max_length=200)
        author = models.ForeignKey('auth.User', on_delete=models.CASCADE,
        )
        body = models.TextField()
        header_image = models.ImageField(blank=True, null=True, upload_to="images/", default='fox.jpeg')
    
    
        def __str__(self):
            return self.title
    
        def get_absolute_url(self):
            return reverse('post_detail', args=[str(self.id)])
    
    
    class Comment(models.Model):
        post = models.ForeignKey(Post, related_name="comments", on_delete=models.CASCADE)
        name = models.CharField(max_length=255)
        body = models.TextField(max_length=255, null=True, blank=True)
    
    
        def __str__(self):
            return '%s - %s' % (self.post.title, self.name)

我试过了,没有 blank=Truebody = models.TextField(max_length=255, null=True, blank=True, default='Some String')

这个错误不断弹出, 如果有任何帮助,我将不胜感激

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

    你需要设置一个默认值来填充前面的行,添加:default="" 像这样命名属性:

    name = models.CharField(max_length=255, default="Some String")
    

    然后确保运行:

    python manage.py makemigrations
    python manage.py migrate
    

    【讨论】:

    • 成功了,非常感谢!如果你能更详细地解释什么和如何,我会很高兴,否则我不太明白
    • 您好@Squidward,根据文档:-makemigrations,它负责根据您对模型所做的更改创建新的迁移。 - migrate,负责应用和取消应用迁移。因此,当您对模型进行任何修改时,您需要首先使用“python manage.py makemigrations”创建迁移文件。这将在您的应用程序内的“迁移”文件夹中创建一个文件,然后通过键入“python manage.py migrate”应用这些迁移
    • 这一点很清楚,所以我做了makemigrations
    猜你喜欢
    • 2016-01-04
    • 2020-06-03
    • 2020-07-12
    • 1970-01-01
    • 2021-06-21
    • 2017-10-09
    • 2021-09-06
    • 2021-11-16
    • 1970-01-01
    相关资源
    最近更新 更多