2

私は次のモデルを持っています:

class ProjectBudget(models.Model):

フォームとインラインがあります。

class ProjectBudgetAdmin(admin.ModelAdmin):  
    form = ProjectBudgetForm
    inlines= [ProjectSpentsInline]

class ProjectSpentsInline(admin.TabularInline):
    model = ProjectSpents

フォームにフィールドがありますfile。このファイルから、インラインオブジェクトProjectSpentsの値を入力したい:

class ProjectBudgetForm(ModelForm):
    file  = forms.FileField

    def clean_file(self):
        parse file then populate inline model objects ProjectSpents....

問題は、clean_file から ProjectSpents のインライン値を編集したいということですが、clean_file の前にクエリセットが既にいっぱいになっていて、新しいインライン値が表示されないため、問題があります。多分別の解決策がありますか?

4

1 に答える 1

0

モデル管理メソッドをオーバーライドしてみてくださいsave_formset。フォームセット インスタンスを繰り返し処理して既存のインラインを削除してから、form.cleaned_data['file']関連する新しいインスタンスにアクセスして作成できます。

于 2012-07-25T09:17:55.987 に答える