Python DatabaseError位于/admin/app1/book/no这样的列:app1\u book.related\u id
我为管理员写了一个Django程序。但事实证明外键出了什么问题,我查不出来 这是我的admin.py和views.py:Python DatabaseError位于/admin/app1/book/no这样的列:app1\u book.related\u id,python,django,django-models,Python,Django,Django Models,我为管理员写了一个Django程序。但事实证明外键出了什么问题,我查不出来 这是我的admin.py和views.py: from django.contrib import admin from app1.models import * class BookAdmin(admin.ModelAdmin): list_display = ('name','auther','pages') search_fields = ['name'] admin.site.register
from django.contrib import admin
from app1.models import *
class BookAdmin(admin.ModelAdmin):
list_display = ('name','auther','pages')
search_fields = ['name']
admin.site.register(Book,BookAdmin)
admin.site.register(RelatedBook)
views.py:
from django.contrib import admin
from app1.models import *
class BookAdmin(admin.ModelAdmin):
list_display = ('name','auther','pages')
search_fields = ['name']
admin.site.register(Book,BookAdmin)
admin.site.register(RelatedBook)
from django.db import models
CATEGORY_CHOICES = (
('s','Science'),
('l','Literature'),
('e','else'),
)
class Book(models.Model):
name = models.CharField(max_length = 100)
auther = models.CharField(max_length= 100)
pages = models.IntegerField()
related = models.ForeignKey('RelatedBook')
def __unicode__(self):
return self.name
class RelatedBook(models.Model):
name = models.CharField(max_length = 100)
category = models.CharField(max_length = 1, choices = CATEGORY_CHOICES)
description = models.CharField(max_length = 1000)
def __unicode__(self):
return self.name
如果在首次创建
图书
模型后添加了相关列,那么syncdb将不会创建它,因为它不处理迁移
如果您有重要数据,则需要手动添加列。如何做到这一点取决于所使用的数据库
如果您没有任何需要保留的数据,那么删除Book表并重新运行syncb可能是最简单的
模式迁移将是即将发布的Django 1.7版本的一部分。对于Django 1.6及更早版本,您可能希望在将来探索迁移工具