【问题标题】:models Django invalid literal for int() with base 10: 'None'以 10 为基数为 int() 建模 Django 无效文字:“无”
【发布时间】:2023-03-17 06:08:01
【问题描述】:

我是 Django 的新手,我想在这里创建一个博客,这是我的模型

from django.db import models
from django.contrib.auth.models import User


class UserProfile(models.Model):
    name = models.OneToOneField(User)

    def __unicode__(self):
        return self.user.user_name


class Category(models.Model):
    category = models.CharField(max_length=150)

    def __str__(self):
        return self.category


class Blog(models.Model):
    title = models.CharField(max_length=150, default="No title")
    body = models.TextField(default="None")
    creation_date = models.DateTimeField(auto_now_add=True)
    author = models.ForeignKey(UserProfile, default=1)
    category = models.ForeignKey(Category, default="None")

    def __str__(self):
        return self.title


class Comment(models.Model):
    comment = models.TextField(default="")
    blog = models.ForeignKey(Blog)

但是当我运行命令时:

python manage.py 迁移

我明白了

ValueError: int() 以 10 为底的无效文字:'None'

我试图删除旧的迁移文件并再次迁移,但我得到了同样的错误,我该怎么办?

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

    代替default="None",指定null=True 以允许外键为空:

    category = models.ForeignKey(Category, null=True)
    

    【讨论】:

    • 我做到了,但同样的问题,我注意到在追溯中所有目录都指的是 python 3.5,我想使用 python 2.7!你觉得这有关系吗?
    • @HossamSalah,删除迁移文件 (/migration/000n_migration_file.py) 并重新生成它。
    • @HossamSalah,不客气。快乐的 Python 编程。
    猜你喜欢
    • 2013-08-04
    • 2023-03-09
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多