2017-09-13 86 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()函數對此問題進行排序,並且可能更好的做法,因此我更改爲在用戶和管理員端都使用它。