繁体   English   中英

在Django管理员中删除记录期间出现“无此列”错误

[英]“No such column” error during deletion of a record in Django admin

我的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( 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的实例,然后尝试在Admin中将其删除时,出现错误no such column: opinions_argumentelement.topic_id

我的models.py什么问题?

看来使用sqllite3后端的AutoFields不能正确递增 是否有任何原因要包括行id = models.AutoField(primary_key=True) 如果您将其保留,则会自动添加一个自动递增的主键字段,并且很可能会正确创建该字段。 尝试删除该行并创建一个新的sqllite数据库文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM