我的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怎么了?
发布于 2013-06-16 06:05:57
似乎使用sqllite3后端的AutoFields不支持increment properly。有什么原因要加上id = models.AutoField(primary_key=True)这一行吗?如果省略它,则会自动添加一个自动递增的主键字段,并且更有可能被正确创建。尝试删除该行并创建一个新的sqllite数据库文件。
https://stackoverflow.com/questions/17127458
复制相似问题