【问题标题】:"No such column" error during deletion of a record in Django admin在 Django admin 中删除记录时出现“没有这样的列”错误
【发布时间】:2013-06-15 20:07:45
【问题描述】:

我的 Django 项目中有以下模型 (models.py):

class Topic(models.Model):
    id = models.AutoField(primary_key=True)
    title = models.CharField(max_length=140)

    def __unicode__(self):
        return self.title

class ArgumentElement(models.Model):
    id = models.AutoField(primary_key=True)
    contents = models.CharField(max_length=256)
    elementType = models.CharField(max_length=10)
    topic = models.ForeignKey(Topic, related_name='ArgumentElement_Topic')

    def __unicode__(self):
        return self.contents

class ArgumentElementConnection(models.Model):
    id = models.AutoField(primary_key=True)
    sourceId = models.ForeignKey(ArgumentElement, related_name='connection_source')
    targetId = models.ForeignKey(ArgumentElement, related_name='connection_target')
    topic = models.ForeignKey(Topic, related_name='ArgumentElementConnection_Topic')
    connectionType = models.CharField(max_length=7)

    def __unicode__(self):
        return self.id

我将所有三个模型添加到管理员 (admin.py):

from django.contrib import admin
from history_site.opinions.models import ArgumentElement, ArgumentElementConnection, Topic

admin.site.register(ArgumentElement, admin.ModelAdmin)
admin.site.register(ArgumentElementConnection, admin.ModelAdmin)
admin.site.register(Topic, admin.ModelAdmin)

当我创建Topic 的实例,然后尝试在管理员中删除它时,我收到错误no such column: opinions_argumentelement.topic_id

我的models.py 怎么了?

【问题讨论】:

  • 您是否也在使用管理员创建实例?没问题?
  • 是的,创建似乎工作(我收到一条成功消息并且新创建的实例出现在列表中)。
  • 你是什么数据库引擎?它是否支持参照完整性约束?
  • @SylvainLeroux 我正在使用内置的 SQLite 数据库。

标签: python django python-2.5 django-1.4


【解决方案1】:

似乎使用 sqllite3 后端的 AutoFields 不increment properly。您是否有任何理由包含 id = models.AutoField(primary_key=True) 行?如果您不使用它,将自动添加一个自增主键字段,并且更有可能正确创建。尝试删除该行并创建一个新的 sqllite 数据库文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 2018-12-04
    • 2012-08-28
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    相关资源
    最近更新 更多