fad*_*bee 3 python django django-admin
我有一些自定义管理代码,它初始化一些内联子对象.
如果用户编辑其中一个内联子对象的默认值,则在保存父对象时会创建该子元素.
我假设Django正在检查值是否已从其initial值更改,并且仅在用户更改了值时才保存.
是这样的吗?
如果用户选择不更改默认值,如何强制Django Admin创建具有未更改的默认值的内联子对象?
class PrepopIpInlineFormSet(forms.models.BaseInlineFormSet):
model = Ip
def __init__(self, *args, **kwargs):
super(PrepopIpInlineFormSet, self).__init__(*args, **kwargs)
initial = # calculate a set of default Ip model initial values
self.initial = initial
class PrepopIpInline(admin.options.InlineModelAdmin):
template = "admin/linked.html"
model = Ip
formset = PrepopIpInlineFormSet
fk_name = 'sim'
admin_model_path = None
show_url = True
def __init__(self, *args):
super(PrepopIpInline, self).__init__(*args)
if self.admin_model_path is None:
self.admin_model_path = self.model.__name__.lower()
def get_formset(self, request, obj=None, **kwargs):
formset = super(PrepopIpInline, self).get_formset(request, obj, **kwargs)
formset.request = request
return formset
def get_extra(self, request, obj=None, **kwargs):
if obj:
return 0
else:
return ApnGgsn.objects.all().count()
Run Code Online (Sandbox Code Playgroud)
Yev*_*lev 15
来源:如何强行保存"空"/未更改的django admin内联?
from django.contrib import admin
from django.forms.models import BaseInlineFormSet, ModelForm
class AlwaysChangedModelForm(ModelForm):
def has_changed(self):
""" Should returns True if data differs from initial.
By always returning true even unchanged inlines will get validated and saved."""
return True
class CheckerInline(admin.StackedInline):
""" Base class for checker inlines """
extra = 0
form = AlwaysChangedModelForm
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1949 次 |
| 最近记录: |