模型字段引起的Django编程错误

时间:2013-12-13 02:08:20

标签: python django templates django-models

我有一个名为“新闻”的模型,定义如下:

class News(models.Model):
    title = models.CharField(max_length=30, null=False, blank=False, verbose_name="news title")
    content = models.TextField(max_length=300, null=False, blank=False, verbose_name="news content")
    cta = models.CharField(max_length=50, null=False, blank=False, verbose_name="news call-to-action")
    mini_image = models.URLField(null=False, blank=False, verbose_name="news image helper")
    is_promo = models.BooleanField(null=False, blank=False, verbose_name="promo code")
    promo_benefit = models.DecimalField(max_digits=7, decimal_places=2, blank=False, null=False, default=0.00, verbose_name="promo benefit")
    promo_duration = models.IntegerField(null=False, blank=False, default=0, verbose_name="promo duration")
    date_published = models.DateTimeField(auto_now_add=True, null=False, blank=False)
    def __str__(self):
        return self.title

当我尝试访问使用新闻模型的模板时(无论我是登录管理员尝试创建新实例还是自定义模板),我都会收到以下错误:

ProgrammingError at /admin/myapp/news/

column omninectar_news.cta does not exist
LINE 1: ...app_news"."title", "myapp_news"."content", "myapp...
                                                             ^

有关如何解决此问题的任何想法?

2 个答案:

答案 0 :(得分:0)

column omninectar_news.cta does not exist

这应该是不言自明的。您的数据库已过期。

如果您使用South,请迁移。否则,尝试删除表“omnictar_news”,然后运行syncdb。

答案 1 :(得分:0)

您应该删除迁移文件夹,然后删除

python manage.py migrate --run-syncdb

python manage.py migrate --fake appname