0
我有下面的代碼,我已經修改了管理員窗體以傳遞額外的信息,然後在保存過程完成後使用。 使用保存按鈕時可以正常工作。 下面的代碼的問題是,當有人使用「另存爲新」按鈕時,sample_pk將是當前樣本的ID而不是生成的新樣本。 我的問題是如何在save_related上調用super之後獲取新對象的id。django admin當覆蓋save_related時如何獲取新對象的ID
@admin.register(Sample)
class SampleAdmin(ModelAdmin):
save_as = True
def save_related(self, request, form, formsets, change):
super(SampleAdmin, self).save_related(request, form, formsets, change)
args = request.resolver_match.args
if len(args) < 1: # not previously saved
return
sample_pk = int(args[0])
new_things = []
for formset in formsets:
for key, val in formset.data.items():
if key.startswith('robo_'):
new_things.append(val)
x = sum(new_things)
sam = Sample.objects.get(pk=sample_pk)
OtherTable.objects.create(x=x, sample=sam)