Python Django管理中的内联:没有外键
我有两款Django车型:Python Django管理中的内联:没有外键,python,django,Python,Django,我有两款Django车型: 类作者(models.Model): user\u email=models.CharField(最大长度=100,空白=True) display_name=models.CharField(最大长度=250) 班级照片(模特。模特): 作者=模型。外键(作者) image=ThumbnailImageField(上传到='photos') 要获取在线照片,我在admin.py中有: class PhotoInline(管理堆栈行): 模型=作者 类AuthorA
类作者(models.Model):
user\u email=models.CharField(最大长度=100,空白=True)
display_name=models.CharField(最大长度=250)
班级照片(模特。模特):
作者=模型。外键(作者)
image=ThumbnailImageField(上传到='photos')
要获取在线照片,我在admin.py中有:
class PhotoInline(管理堆栈行):
模型=作者
类AuthorAdmin(admin.ModelAdmin):
列表显示=('display\u name'、'user\u email')
inlines=[PhotoInline]
我收到一个错误:异常位于/admin/metainf/author/11/
没有要删除的外键
为什么?那是因为作者没有照片的外键。我认为您需要像这样切换内联模式:
class PhotoInline(admin.StackedInline):
model = Photo
class AuthorAdmin(admin.ModelAdmin):
list_display = ('display_name','user_email')
inlines = [PhotoInline]
内联模型应该具有父模型的ForeignKey。要在
Author
中以内联方式获取Photo
,您的模型代码很好。但您的管理代码应如下所示:
class PhotoInline(admin.StackedInline):
model = Photo
class AuthorAdmin(admin.ModelAdmin):
list_display = ('display_name','user_email')
inlines = [PhotoInline]
阅读更多信息。也许您需要安装django嵌套管理库,然后尝试使用NestedStackedLine。