使用 CreateView 类,我想保存多个数据条目
示例输入:
项目是“苹果,香蕉,胡萝卜”
位置是“位置1”
我想将它们保存到数据库中,如下所示:
[苹果,地点1]
[香蕉,地点1]
[胡萝卜,地点1]
#model.py
class Inventory(models.Model):
item = models.CharField(max_length=14)
location = models.CharField(max_length=10)
#forms.py
class InventoryCreateForm(forms.ModelForm):
item = forms.CharField(widget=forms.Textarea(attrs={'rows': 8,
'cols': 14}))
class Meta:
model = Inventory
#views.py
class InventoryCreateView(CreateView):
model = Inventory
form_class = InventoryCreateForm
谢谢
答案 0 :(得分:0)
您需要覆盖createview使用的“form_valid()”方法。
然后您需要阅读表单数据
def form_valid(self,form):
self.object = form.save(commit=False)
foo = self.object.bar #your data is in the object
然后因为您正在使用文本字段,您需要以某种方式拆分传递到表单中的数据并循环遍历这些值。理想情况下,你会想要一个项目列表['apple','banana','pear'] 然后将该位置从列表中取出并将其存储到稍后可在 location_variable 中使用的变量中。
如果您拥有所需表单中的数据,则需要实例化Inventory模型
from foo.models import Inventory #import at the top of your file
for item is list:
inventory = Inventory()
inventory.item = item
inventory.location = location_variable
inventory.save()
我希望这个答案能够以某种方式帮助您,如果您想了解基于班级的视图的更多详细信息,请访问ccbv,其中列出了每个视图的所有信息。
否则,您可以在django Form docs中查找更合适的表单。