有一个具有多个字段的窗体和一个处理它的视图
视图.py
class VehiclesBlacklistAddView(ObjectAddView):
model = Vehicle
form_class = VehicleForm
.....
def process_valid_form(self, request, form):
form.instance.save()
没关系,很有效。但现在我希望能够通过逗号将多个值添加到表单的一个item_id字段中,并创建多个实例,而不是一个实例
视图.py
def process_valid_form(self, request, form):
# print(form.instance.__dict__)
items = [id.strip() for id in form.instance.item_id.split(',')]
for i in items:
form.instance(item_id=i).save()
但我犯了一个错误
'Vehicle' object is not callable
型号.py
class Vehicle(models.Model):
item_type = models.CharField()
item_id = models.CharField()
desc = models.CharField()
为此,我推荐Django表单集:https://docs.djangoproject.com/en/3.1/topics/forms/formsets/
我还建议你研究一下
bulk_create
:https://docs.djangoproject.com/en/3.0/ref/models/querysets/#bulk-create但要回答你的问题:
错误是针对行
form.instance(item_id=i).save()
这是一个已经创建的实例,一个
Vehicle
。 为了创建更多,您应该导入Vehicle
并创建它的实例并保存它们:然后不要在表单保存时保存绑定到表单的一个实例
相关问题 更多 >
编程相关推荐