在同一个 djangoform 上添加多个对象

问题描述 投票:0回答:1

此代码用于在数据库中注册设备。
您在表单中填写了一些数据,例如 MAC,然后保存。
我想实现一个功能,您可以用,(逗号)分割多个MAC,并且对于每个MAC,将一个新设备添加到数据库中(该表具有自动增量序列)。

基本上我的代码是:


for i in listmac.split(","):
form2 = form.save(commit=False)
#next_id = Net.objects.order_by('-id_seq').first().id_seq+1
#form2.id_seq=next_id
form2.mac = i
form2.save()
问题:\ 假设我的下一个 id 是 150。\ 使用这样的代码,如果我放置 3 个 MAC,代码会尝试添加 3 个 seq=150 的设备,因此只保存最后一个。\ 如果我取消注释这两行,它会正确添加 150、151 和 152,但不会将序列保存在自动增量字段中。因此,例如,如果我尝试直接通过数据库插入另一个寄存器,它会尝试插入 151 并给出错误。
django postgresql django-forms
1个回答
0
投票

它无需使用 form.save(commit=False) 即可工作。
我做了类似的事情。
名称 = form.cleaned_data['名称']

Device.create(名称=名称,mac=mac)

© www.soinside.com 2019 - 2024. All rights reserved.