У меня есть встроенная модель в админке модели Django, и мне нужно создать условие перед сохранением элементов, вот код, который я использую:
class PRCItemInline(admin.TabularInline):
def get_form(self, request, obj=None, **kwargs):
form = super(PRCItemInline, self).get_form(request, obj, **kwargs)
form.base_fields['product'].widget.attrs['style'] = 'width: 50px;'
return form
ordering = ['id']
model = PRCItem
extra = 1
autocomplete_fields = [
'product',
'supplier',
]
fields = (
'product', # 1
'quantity', # 2
'unitary_value_reais_updated', # 4
'issuing_status',
'approval_status',
'receiving_status',
)
readonly_fields = ['issuing_status',
'approval_status',
'receiving_status',
]
def save_formset(self, request, form, formset, change):
obj = form.instance
if obj.purchase_request.is_analizer:
return HttpResponse("You can't change this")
else:
obj.save()
Как видите, я использовал save_formset
метод, чтобы иметь возможность добраться до полей модели, а затем фильтровать на основе этого. но он просто сохраняет элементы независимо от того, что я добавил оператор If.