2013-02-08 2 views
3
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)의 스키마 변경 사항은 무엇입니까?django ForeignKey null = true

나는 워드 프로세서에서 읽고 있습니다 :

내가 제거() 선명()를 사용하려면이이 문서의 일부입니다.

데이터베이스 불일치를 방지하기 위해이 메서드는 null = True 인 ForeignKey 개체에만 존재합니다. 관련 필드를 없음 (NULL)으로 설정할 수 없으면 오브젝트를 다른 오브젝트에 추가하지 않고 관계에서 제거 할 수 없습니다. 위의 예제에서 b.entry_set()에서 e를 제거하는 것은 e.blog = None을 수행하는 것과 동일하며 ForeignKey 블로그에 null = True가 없으므로 유효하지 않습니다.

답변

3

스키마를 변경하지 않고 (테이블 만 만들고 수정하지 않음) syncdb에서 NOT NULL없이 만들 것입니다.

python manage.py sqlall my_app을 통해 테이블 ​​정의의 SQL 출력을 확인하고 직접 볼 수 있습니다!

관련 문제