我为管理员写了一个Django程序。但事实证明,ForeignKey有些不对劲,我无法找到。
这是我的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(Book,BookAdmin)
admin.site.register(RelatedBook)
views.py:
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
答案 0 :(得分:0)
如果您在首次创建Book
模型后添加了相关列,则syncdb将不会创建它,因为它不会处理迁移。
如果您有重要数据,则需要手动添加列。如何执行此操作取决于您使用的数据库。
如果您没有任何数据需要保留,那么删除Book表并重新运行syncb可能是最简单的。
架构迁移将成为即将发布的Django 1.7版本的一部分。对于Django 1.6及更早版本,您可能希望将来探索迁移工具south。