Django内联管理员:错误:<class'ui.models.license'=“”>对<class'ui.models.car'=“”> </class> </class>没有ForeignKey

时间:2013-06-22 23:20:13

标签: python django django-admin

我有以下型号:

class Car(models.Model):
    ...
    some attributes
    ...

class Person(models.Model):
    car = models.ForeignKey(Car)

class License(models.Model):
    car = models.ForeignKey(Car)

目前这些模型有点抽象。我打算稍后详细说明。

在我的admin.py我有以下代码:

class PersonInline(admin.StackedInline):
    model = Person

class LicenseInline(admin.StackedInline):
    model = License

class CarAdmin(admin.ModelAdmin):
    inlines = [
        PersonInline,
        LicenseInline
]

admin.site.register(Car, CarAdmin)

只有Person内嵌才有效。当我添加License时,它会抛出这个奇怪的错误:

<class 'ui.models.License'> has no ForeignKey to <class 'ui.models.Car'>

我不知道我做错了什么。请帮忙。

更新:

这可能很有用:

初始License Foreign Key上没有Car。但后来我加了。然后我才在Inline

中完成了admin.py

我还完成了python manage.py syncdb和服务器重启。

1 个答案:

答案 0 :(得分:1)

syncdb does not detect changes(请阅读 Syncdb不会改变现有表格一节)。

你要么需要   - 删除数据库并重新创建(不是非常推荐)或   - 安装名为django-south的第三方应用程序以修改数据库列并管理迁移