【Django】admin中添加内联关联
假如有连个表,一个是资产信息,一个是资产使用记录。我们的需求是在编辑资产信息时,可以添加资产使用记录。
先将两个模型注册到admin中,然后再创建一个类UsageRecordInline
,继承自admin.TabularInline
,指定model是资产使用记录模型,然后在资产信息的类中添加一行inlines = [UsageRecordInline]
,这样在编辑资产信息时,就可以直接编辑资产使用记录了。
class UsageRecordInline(admin.TabularInline):
model = UsageRecord
@admin.register(UsageRecord)
class UsageRecordAdmin(admin.ModelAdmin):
list_display = ('asset', 'use_type', 'unit', 'person', 'mobile', 'leave_time', 'position', 'return_time',
'check_up', 'remark')
exclude = ['add_time']
list_display_links = ('asset',)
# readonly_fields = ['asset']
autocomplete_fields = ['asset']
@admin.register(Asset)
class AssetAdmin(admin.ModelAdmin):
list_display = ('id', 'type', 'name', 'numbers', 'storage_time', 'serial_number', 'state', 'position', 'records')
list_editable = ('state',)
search_fields = ('serial_number',)
list_display_links = ['type', 'id', 'name']
inlines = [UsageRecordInline]