adminでインラインのsaveメソッドをオーバーライドする必要があります。写真を保存するときに、DB列にユーザーIDを追加する必要があります。リクエストデータがないのでモデルにできません。どうすればadminでそれを実行して、どういうわけかnad set user idを取得できますか?
8806 次
2 に答える
18
ModelAdminのsave_formsetメソッドを使用する必要があると思います。
class ArticleAdmin(admin.ModelAdmin):
def save_formset(self, request, form, formset, change):
instances = formset.save(commit=False)
for instance in instances:
instance.user = request.user
instance.save()
formset.save_m2m()
于 2011-08-08T22:27:21.410 に答える
1
私はdjango(1.8)に比較的慣れておらず、上記のオーバーライドを使用しています。
def save_formset(self, request, form, formset, change):
instances = formset.save(commit=False) # gets instance from memory and add to it before saving it
for obj in formset.deleted_objects:
obj.delete()
for instance in instances:
for form in formset: # cleaned_data is only available on the form, so you have to iterate over formset
instance.modified_by = request.user
instance.created_by = request.user
instance.lowercase_enum_value_en = form.cleaned_data['enum_value_en'].lower()
instance.save()
formset.save_m2m()
つまり、インスタンスとフォームを保存する前に追加しますが、ユーザーが2行を入力すると、常に最後のcleaned_data['enum_value_en']が保存されます。
于 2016-08-03T15:18:42.177 に答える