django ForeignKey null = true

标签 django model

from django.db import models

class Story(models.Model):
    id = models.IntegerField(primary_key=True)
    news_type = models.CharField(max_length=255,null=True)
    category_id = models.CharField(max_length=255,null=True)
    title = models.CharField(max_length=255,null=True)
    created = models.DateTimeField(null=True)
    author = models.CharField(max_length=255, null=True)
    author_title = models.CharField(max_length=255, null=True)
    image_caption = models.TextField(null=True)
    image_credit = models.CharField(max_length=255,null=True)
    image_full_url = models.CharField(max_length=255,null=True)
    body = models.TextField(null=True)
    summary = models.TextField(null=True)
    video_id = models.CharField(max_length=255,null=True)
    external_url = models.CharField(max_length=255,null=True)
    order = models.IntegerField(null=True)

class StoryFactBox(models.Model):
    story = models.ForeignKey('Story', null = True)
    body = models.TextField()

class StoryKeyword(models.Model):
    story = models.ForeignKey('Story', null = True)
    keyword = models.CharField(max_length=255)

models.ForeignKey('Story', null = True) 导致发生哪些架构更改?

我正在阅读文档:

我想使用 remove() 和 clear(),这是文档的一部分。

为了防止数据库不一致,此方法只存在于 null=True 的 ForeignKey 对象上。如果相关字段不能设置为 None (NULL),则对象不能从关系中删除而不添加到另一个关系中。在上面的例子中,从 b.entry_set() 中删除 e 相当于做 e.blog = None,并且因为博客 ForeignKey 没有 null=True,所以这是无效的。

最佳答案

它不会导致模式发生变化(只是澄清它只创建表,不修改),但在 syncdb 上,将创建 SQL 语句没有 NOT NULL

您可以通过 python manage.py sqlall my_app 检查表定义的 SQL 输出并亲自查看!

关于django ForeignKey null = true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14779843/

相关文章:

python - 为什么没有出现 Django 管理界面?

django - 使用模型中的函数动态填充 Django 中对象创建时的字段

python - 如何在使用 django social_auth 登录 google oauth 后打开原始页面

django - 使用 moto 和 boto3 上传测试文件

html - 我的 Django 元素没有显示正文背景

ios - 验证模型属性、最佳实践

validation - error.add_to_base 的 Rails3 版本是什么?

javascript - 主干-合并: true - option not changing UI

php - LARAVEL 5.3,获取用户名和角色名(使用 Laravel 模型关系)

php - 如何在 Laravel 5 中调用模型?