以下代码:
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
author = models.ForeignKey(Author)
title = models.CharField(max_length=100)
class BookInline(admin.TabularInline):
model = Book
extra = 1
class AuthorAdmin(admin.ModelAdmin):
inlines = [
BookInline,
]
如果我通过管理员添加新作者,则会因extra=1
而向我显示一个图书条目。如果我编辑具有一本书的现有作者,则管理员将显示现有书籍和新字段以添加新书籍。
编辑具有1本书的作者的当前行为:
Author: Someone
Book: The book title
Book #2:
通过编辑拥有1本书的作者
的通缉行为Author: Someone
Book: The book title
上述代码的admin.py
是否可以检查我是否在添加或编辑页面?我的目标是将extra=1
设置为添加,将extra=0
设置为编辑。
答案 0 :(得分:1)
没关系,我刚用max_num=1
代替extra=1
,它解决了我的问题。这是reference。
答案 1 :(得分:0)
也许你可以有一个函数根据给定内联的Books数量返回一个条件值?
像...一样的东西。
class BookInline(admin.TabularInline):
model = Book
extra = extra_count
def extra_count(self):
if self.model.objects.count > 0:
return 1
else
return 0
这是你要求的一种奇怪的行为。出于好奇,为什么你不希望它在编辑模式中显示额外的入口行?