gpt4 book ai didi

python - 如何覆盖 createView 以保存多个数据条目

转载 作者:行者123 更新时间:2023-12-05 05:26:46 24 4
gpt4 key购买 nike

使用 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

谢谢

最佳答案

您需要重写 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 上使用。

一旦你有了你想要的形式的数据,你就需要实例化库存模型

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()

我希望这个答案能以某种方式帮助您,如果您想了解有关基于类的 View 的更多详细信息,请访问 ccbv其中列出了每个 View 的所有信息。

否则你可以查看django Form docs以获得更合适的形式。

关于python - 如何覆盖 createView 以保存多个数据条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23976285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com