Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django管理中的内联:没有外键_Python_Django - Fatal编程技术网

Python 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

我有两款Django车型:

类作者(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。