我有一个ModelAdmin类,其内联类型为TabularInline。我想要的是TabularInline的每一行都有一个显示在其左侧的行号。当新记录添加到内联时,此数字将增加,并且在编辑表单时将显示该数字。
我更喜欢行号不是内联数据模型的一部分,而是每次在内联块中添加或显示新记录时生成。我不需要在数据库中保留此号码。它仅供ModelAdmin类中的另一个字段参考。
我是django的新手,我似乎无法弄清楚如何实现这一目标。
任何建议都将不胜感激。
此致 瑞克
答案 0 :(得分:3)
您可以使用类变量和返回行号的方法轻松地通过admin类对现有内联编号:
class MyInlineAdmin(admin.TabularInline):
line_numbering = 0
fields = ('line_number', 'other_field')
readonly_fields = ('line_number',)
def line_number(self, obj):
self.line_numbering += 1
return self.line_numbering
line_number.short_description = '#'
这将按照它们出现的顺序对任何内联进行编号,包括包含的任何额外(空白)内联。如果您通过"添加另一个内容添加一个内联"链接,它的行号将是正确的(从最后一行加1),但是如果通过链接添加多个内联,后续的行号仍将与最后一行相同。
不完美,但总比没有好。