0

私のdjangoプロジェクトには、「Vehicle」(親モデル)とParamConf(子モデル)の2つの関連モデルがあります。ParamConf には「program」フィールドがあり、その中の間違った値を修正したいと考えています。
(admin.py):

class ParamConfFormSet(BaseInlineFormSet):
    def clean(self):
        super(ParamConfFormSet, self).clean()

        for form in self.forms:
            if hasattr(form, 'cleaned_data') and 'program' in form.cleaned_data:

                program = form.cleaned_data['program'].lower() # <<< I want to save this changed value
                form.cleaned_data['program'] = program # <<< but this doesn't work :^(

class ParamConfInline(admin.TabularInline):
    model = models.ParamConf
    formset = ParamConfFormSet


class VehicleAdminForm(forms.ModelForm):
    class Meta:
        model = models.Vehicle

class VehicleAdmin(admin.ModelAdmin):
    inlines = [ ParamConfInline, ]
    form = VehicleAdminForm

ParamConf の save() メソッドも書きましたが、django は Vehicle フォームを保存した後に呼び出したがりません (Vehicle の save メソッドは問題ありません)。

4

2 に答える 2

0

フィールド値が実際に変更された場合、Djangoはインラインパラメーターの保存シグナルを出力します(フィールドを編集せずにフォームを保存しようとしていました)。申し訳ありませんが、それは私のせいです。

于 2012-07-18T10:25:46.703 に答える