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/