如何创建多个数据项

2024-10-02 08:29:15 发布

您现在位置:Python中文网/ 问答频道 /正文

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

谢谢你


Tags: py苹果modelmodelsformsitemlengthmax
1条回答
网友
1楼 · 发布于 2024-10-02 08:29:15

您需要重写createview使用的“form_valid()”方法。在

然后需要读入表单数据

def form_valid(self,form):
    self.object = form.save(commit=False)
    foo = self.object.bar #your data is in the object

然后,因为您使用的是textfield,所以您需要以某种方式将传递到表单中的数据拆分并在这些值上循环。理想情况下,你会想要一份物品清单['apple'、'banana'、'pear'] 然后从列表中取出位置并将其存储到一个变量中,该变量可在以后的location_variable中使用。在

一旦获得了所需格式的数据,就需要实例化库存模型

^{pr2}$

我希望这个答案能在某种程度上对您有所帮助,如果您想进一步了解基于类的视图的详细信息,请访问ccbv,其中列出了每个视图的所有信息。在

否则,您可以在djangoForm docs中查找更适合使用的表单。在

相关问题 更多 >

    热门问题