我有一个带有内联的直接 admin.ModelAdmin 类,其中我使用 forms.Model 和 BaseInlineFormset 覆盖表单和表单集以添加自定义字段。我有一个加载的自定义 jQuery 脚本,每当从 select2 下拉列表中选择一台机器时,它都会对 REST API 运行 AJAX 查询,并根据外键值获取项目并使用信息填充 CleanEntryInline。但是,保存后它只会将一条记录发布到数据库。
class CleaningEntryInline(admin.TabularInline):
model = CleaningEntry
form = CleaningEntryForm
formset = CleaningEntryFormSet
extra = 0
raw_id_fields = ['cleaning_item']
fieldsets = [
(None,{'fields':[('cleaning_item','cleaning_action', 'checked', 'na', 'notes')]})
]
template = 'admin/quality/cleaningentry/edit_inline/tabular_actions.html'
class CleaningLogAdmin(admin.ModelAdmin):
####Save model function override to make and save QC Lab user and make uneditable.
def save_model(self, request, obj, form, change):
obj.lab_user = request.user.username
obj.save()
list_display = ['machine_used','get_product_info','lot_num','start_time','lab_user']
list_filter = ['machine_used']
readonly_fields = ['lab_user', 'cleaning_users']
search_fields = ['machine_cleaned', 'lot_num', 'recipe_cleaned__recipe_name__item_code', 'lab_user']
autocomplete_fields = ['machine_used','recipe_cleaned']
fieldsets = [
('Cleaning Info',{'fields':[('machine_used', 'recipe_cleaned', 'lot_num')]}),
(None,{'fields':[('start_time')]}),
(None,{'fields':[('clean_time', 'lab_user')]})
]
我已经尝试过覆盖save_formset() 之类的方法,但我不完全确定这是一个 Django 问题,并且想知道这是否不是由于命名空间造成的?
如果我在 ajax 调用后使用“添加另一个”按钮手动附加行,然后单击“保存并继续”或“保存”并检查 POST 表单正在提交所有内联,但它只保存列出的第一条记录和所有我手动添加的记录。
喵喔喔
相关分类