如何制作django模型中不需要的多对多或外键?

时间:2011-04-20 14:55:53

标签: python django django-models

这是我的模特:

class Page(models.Model):
    template = models.CharField(max_length=200,blank=True)
    self_url = models.ForeignKey('liens.Lien',null=True,blank=True)
    Categorie = models.ForeignKey(Categorie_Page,null=True,blank=True)
    Liens = models.ManyToManyField('liens.Lien',related_name="Liens sur la page",null=True,blank=True)
    Nom = models.CharField(max_length=200)
    ImagesSite = models.ManyToManyField('presentation.ImageSite',null=True,blank=True)
    Texte_contenu = models.ManyToManyField('presentation.Texte_contenu',null=True,blank=True)
    Note_divers = models.ManyToManyField('notes.Note_divers',null=True,blank=True)  
    MiseEnForme = models.ManyToManyField('presentation.MiseEnForme',null=True,blank=True)
    Menu = models.ManyToManyField('presentation.Menu',null=True,blank=True)
    Avis = models.ManyToManyField('moteur.Avis',null=True,blank=True)
    Regle = models.ManyToManyField('regles.Regle',null=True,blank=True)
    Pack = models.ManyToManyField('moteur.Pack',null=True,blank=True)
    Imageventes = models.ManyToManyField('moteur.ImageVente',null=True,blank=True)
    Film = models.ManyToManyField('moteur.Film',null=True,blank=True)
    ImageFilm = models.ManyToManyField('moteur.ImageFilm',null=True,blank=True)
    ImageActeur = models.ManyToManyField('moteur.ImageActeur',null=True,blank=True)
    generated = models.DateTimeField('date published',blank=True)
    modified = models.DateTimeField('date modified',blank=True)
    protege = models.BooleanField(blank=True)

我希望我的所有领域都是空白的。 我怎么能这样做?

我有:

pages_page.self_url_id may not be NULL

或此字段是必需的......

此致 比西耶尔

1 个答案:

答案 0 :(得分:3)

在相关字段null=True上设置并更新您的数据库。

看起来你已经在self_url上设置了null,所以问题是你的数据库还没有使用这个可以为空的信息进行更新。 Syncdb不会更新您的表格!

运行python manage.py reset myapp (这会破坏/重新创建您的表格)