2017-09-13 115 views
0

我试图在django管理员中使用自定义内联表单。Django Admin - 自定义内嵌表格

admin.py -

class EmpInline(admin.StackedInline): 
    model = Emp 
    form = UpdateYearlyForm 
    show_change_link = True 

class CompanyAdmin(admin.ModelAdmin): 
    list_display = ('companyname','companyid','get_active', 'get_updated') 
    inlines = [EmpInline] 

当点击公司名称,公司的细节与相关的所有员工一个formset一起显示。

这适用于显示表单,但其中一个字段是间接更新模型字段的自定义选择字段。其中,在普通用户视图中(此表单需要由管理员用于所有记录,用户用于记录与其相关的记录),自定义字段的处理方式如下。

我只显示了一段视图,因为它很长。

views.py -

if formset.is_valid(): 
     for form in formset.forms: 
      if form.is_valid(): 
       obj = form.save(commit=False) 
       data = form.cleaned_data 
       if data['updatefield'] == 'accident': 
        obj.years += 1 
       else data['updatefield'] == 'free': 
        obj.years += 1 
       obj.save() 

有作为在管理员的inlineform使用时的处理相同的方式形式(和自定义字段)的方法吗?

回答

0

如果它帮助任何人 - 覆盖表单本身上的save()函数对此问题进行排序,并且可能更好的做法,因此我更改为在用户和管理员端都使用它。