您试图在没有默认值的情况下向注释中添加不可为空的字段“name”

2024-04-25 01:48:02 发布

您现在位置:Python中文网/ 问答频道 /正文

错误“``您试图在没有默认值的情况下将不可为空的字段“name”添加到注释中;我们不能这样做(数据库需要一些东西来填充现有的行)。 请选择一个修复程序:

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

型号.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')

这个错误经常出现,, 如果有任何帮助,我将不胜感激


Tags: djangonamefromimportselftruetitlemodels
1条回答
网友
1楼 · 发布于 2024-04-25 01:48:02

您需要设置一个默认值来填充前面的行,add:default=“” 要像这样命名属性,请执行以下操作:

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

然后确保运行:

python manage.py makemigrations
python manage.py migrate

相关问题 更多 >