我有2个问题。我有2个模型工具车和工具我从工具车到工具创建了一个ManyToMany关系,我想在购物车中添加一个或多个工具
问题1.-这是我正在尝试做的正确方法吗? 问题2.-我使用泛型类来创建Toolcart对象(CreateView),并获得一个包含Tools模型中所有内容的框。我将如何制作可选项目。我试图做makies的感觉是什么?
my models.py:
class Tools(models.Model):
nombre = models.CharField(max_length=250)
descripcion = models.CharField(max_length=250)
codigo_proveedor = models.CharField(max_length=250)
categoria = models.ForeignKey('Categorias', on_delete=models.CASCADE)
c_minima = models.IntegerField()
c_actual = models.IntegerField()
proveedor = models.ForeignKey('Proveedores', on_delete=models.CASCADE)
active = models.BooleanField()
def __str__(self):
return self.nombre + ' ----- ' + str(self.categoria) + ' ----- ' + str(self.c_actual)
class Toolcart(models.Model):
designacion = models.CharField(max_length=250)
contenido = models.ManyToManyField(Tools)
active = models.BooleanField()
def __str__(self):
return self.designacion
my views.py:
# VER CARRITO
class CarritoCreateView(CreateView):
model = Toolcart
template_name = 'inventory/cars_form.html'
fields = [
'designacion',
'contenido',
'active',
]
success_url = reverse_lazy('inventory:home')
答案 0 :(得分:0)
关于问题1
是的,我认为这两个模型和ManyToManyRelationship
是面对你所描述的任务的好方法。
关于问题2
你可以采取两种方式:
显示Tools
的列表,其中每个工具项都有一个“添加到购物车”按钮,提交隐藏的表单(每行都有自己的隐藏表单)。
<form method='post' action='/url/to/add/to/cart/'>
{% csrf_token %}
<input type='hidden' value='{{ tool.pk }}' name='tool_pk'>
<button>add to cart</button>
</form>
在巨型表单中显示Tools
的列表,并让每个工具项都有一个复选框。然后,您可以使用一个按钮“将所选项目添加到购物车”,然后提交整个表单。