【问题标题】:Django is ignoring a field item for a Model with a fresh DBDjango 正在忽略具有新数据库的模型的字段项
【发布时间】:2014-04-15 05:30:31
【问题描述】:

我已经完全擦除了所有数据库表,以便将新字段添加到模型中,因为当 SQL 数据仅包含 dummy 时,擦除 SQL 表是最快的方法,而无需使用“south”路径用于测试目的的数据。

这是我的模型:

class Student(models.Model):
    uid = models.ForeignKey(User)
    title = models.CharField(max_length=250, help_text='The student name.')
    resume = models.FileField(upload_to=get_upload_resume_name)
    location = models.ForeignKey(Location)
    country = models.ForeignKey(Country)
    prim_interest = models.CharField(max_length=250, help_text='Maximum 250 characters.')
    sec_interest = models.CharField(max_length=250, help_text='Maximum 250 characters.')
    cellphone = models.IntegerField(default=0)
    email_verified = models.BooleanField(default=False)
    thumbnail = models.FileField(upload_to=get_upload_file_name)

    def __unicode__(self):
        return self.title

当我在删除所有表后立即调用 syncdb 时,Django 并未创建我添加的最后一个名为“thumbnail”的字段。

无论对models.py 应用什么重大更改,我完全擦除表格的方法始终有效,但突然之间,这种情况并非如此。我可以向您展示更多代码 sn-ps,但我不知道 Django 项目中的其他地方对生成模型有直接影响。

什么可能导致syncdb拒绝将此新字段“缩略图”写入数据库中的学生表?

【问题讨论】:

  • 你在使用南这个应用程序吗?我不知道你说的我的彻底擦桌子的方法一直有效是什么意思,但正确的做法是简单地python manage.py dbshell < python manage.py sqlclear yourappname
  • 如果你只想使用syncdb,你可以删除为你的db创建的文件。我认为它被称为 sqlite3.db。删除它,然后再次使用syncdb。应该工作
  • 看一下syncdb生成的sql查询。它说什么?

标签: python sql django


【解决方案1】:

可能是南方在干扰。您不必等待迁移。如果我记得很清楚,syncdb 不会创建表 那南计划创建。

为什么不在同步数据库之后进行南迁移?

【讨论】:

    猜你喜欢
    • 2019-12-31
    • 1970-01-01
    • 2015-10-11
    • 2014-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-27
    相关资源
    最近更新 更多