代码之家  ›  专栏  ›  技术社区  ›  Yilmaz

一个有4个字段的模型,其中两个给出错误:“添加一个不可为null的字段…”。我的问题是为什么其他两个字段没有给出错误

  •  0
  • Yilmaz  · 技术社区  · 5 年前

    以下是完整错误:

    我的第一个问题是为什么不是所有的字段都给我错误,即使它们是相同的字段?

    第二个问题我如何在不键入以下内容的情况下修复此问题:TextField(default=“any string”)?

    第三个问题,我使用的是mysql,如果我使用的是不同的db,我会得到相同的错误吗?

    from django.db import models
    
    class Product(models.Model):
        title=models.TextField()
        description=models.TextField()
        price=models.TextField()
        summary=models.TextField()
    

    管理员.py

    from django.contrib import admin
    from .models import Product
    
    admin.site.register(Product)
    

    命令

    python manage.py makemigrations
    

    我的管理页面有“产品”选项卡。在管理窗口中创建产品时,只有两个字段。说明和价格。

    2 回复  |  直到 5 年前
        1
  •  0
  •   shourav    5 年前

    从错误中,我认为数据库中存在行。如果要在现有表上添加新列,并且您没有说该列可由空

    summary=models.TextField(null=True)
    

    因此,您必须在迁移期间设置默认值,也可以在模型中定义默认值。你可以选择 Option 1 makemigrations 并设置 'Something' or None

        2
  •  0
  •   Sergey Pugach    5 年前

    the database needs something to populate existing rows .

    有一种方法可以解决这个问题: