Django Admin - 自定义内联表单

时间:2017-09-13 15:22:47

标签: python django forms django-forms django-admin

我试图在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]

点击公司名称后,公司详细信息将与所有相关员工的表单集一起显示。

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

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

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()

在管理员中用作内联形式时,有没有办法以相同的方式处理表单(和自定义字段)?

1 个答案:

答案 0 :(得分:0)

如果它可以帮助任何人 - 覆盖表单本身的save()函数排序了这个问题,它可能更好地练习,因此我改为在用户和管理员端使用它。