使用django admin save上的最后一个id创建其他模型

时间:2015-04-13 17:41:32

标签: django django-admin

我有两种型号:House&室

我有一个自定义表格,如下所示:

class HouseFormCustom(forms.ModelForm):

    rooms_number = forms.CharField()

    def save(self, commit=True):
        rooms_number = self.cleaned_data.get('rooms_number', None)
        return super(HouseFormCustom, self).save(commit=commit)

    class Meta:
        model = House


class HouseAdmin(admin.ModelAdmin):
    form = HouseFormCustom


admin.site.register(House, HouseAdmin)

我想使用rooms_number来保存基于DB X房间的模型并连接到最后创建的房屋。

像:

for x in range(0, rooms_number):
  r = Room()
  r.house = last_id_house
  r.save()

任何提示?我的意思是,我应该把最后一段代码放在哪里?

1 个答案:

答案 0 :(得分:0)

解决了这个问题:

class HouseFormCustom(forms.ModelForm):

    rooms_number = forms.IntegerField(required=False)

    class Meta:
        model = House


class HouseAdmin(admin.ModelAdmin):

    form = HouseFormCustom

    def save_model(self, request, obj, form, change):
        obj.save()

        rooms_number = request.POST.get('rooms_number', None)

        if(rooms_number):
            Room.objects.bulk_create([Room(house=obj) for x in range(0, rooms_number)])


admin.site.register(House, HouseAdmin)