【问题标题】:Django ProgrammingError Caused By Model Field模型字段引起的Django ProgrammingError
【发布时间】:2013-12-13 02:08:20
【问题描述】:

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

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...
                                                             ^

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

【问题讨论】:

  • 你怎么知道的?那是模型字段引起的Django ProgrammingError

标签: python django templates django-models


【解决方案1】:
column omninectar_news.cta does not exist

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

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

【讨论】:

    【解决方案2】:

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

    python manage.py migrate --run-syncdb
    
    python manage.py migrate --fake appname
    

    【讨论】:

      猜你喜欢
      • 2016-10-12
      • 2018-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-04
      • 2012-05-13
      • 2019-12-24
      • 2013-02-03
      • 1970-01-01
      相关资源
      最近更新 更多