我有两个Django模型:
class Author(models.Model):
user_email = models.CharField(max_length=100, blank=True)
display_name = models.CharField(max_length=250)
class Photo(models.Model):
author = models.ForeignKey(Author)
image = ThumbnailImageField(upload_to='photos')
Run Code Online (Sandbox Code Playgroud)
要获取内联照片,我在admin.py中:
class PhotoInline(admin.StackedInline):
model = Author
class AuthorAdmin(admin.ModelAdmin):
list_display = ('display_name','user_email')
inlines = [PhotoInline]
Run Code Online (Sandbox Code Playgroud)
我收到一个错误: Exception at /admin/metainf/author/11/
<class 'metainf.models.Author'> has no ForeignKey to <class 'metainf.models.Author'>
Run Code Online (Sandbox Code Playgroud)
为什么?
aru*_*lmr 11
内联模型应该具有到父模型的ForeignKey.要Photo在Author模型中使用内联代码,这很好.但您的管理代码应如下所示:
class PhotoInline(admin.StackedInline):
model = Photo
class AuthorAdmin(admin.ModelAdmin):
list_display = ('display_name','user_email')
inlines = [PhotoInline]
Run Code Online (Sandbox Code Playgroud)
在这里阅读更多信息.
那是因为Author没有照片的外键。我认为您需要像这样切换内联模型:
class PhotoInline(admin.StackedInline):
model = Photo
class AuthorAdmin(admin.ModelAdmin):
list_display = ('display_name','user_email')
inlines = [PhotoInline]
Run Code Online (Sandbox Code Playgroud)