如何在我的表单中呈现ManyToMany额外字段? (例如,我的披萨上每个浇头的数量)

问题描述 投票:0回答:1

我希望为我的同事建立一个报价生成器,但我有些困惑。在报价中,我们有1个主要产品,可以包含许多不同数量的不同配件。例如。一个带有多个浇头的比萨饼,其中可能有1 x奶酪,2 x意大利辣香肠等。

#models.py
class Accessory(models.Model):
    name              = models.CharField(max_length=200, null=True, blank=True)
    price             = models.PositiveIntegerField(null=True, blank=True)

class Offer(models.Model):
    customer          = models.CharField(max_length=200)
    product           = models.ForeignKey(Product, null=True)
    accessories       = models.ManyToManyField(Accessory, through='Addons')

class Addons(models.Model):
    offer             = models.ForeignKey(Offer, on_delete=models.CASCADE)
    accessory         = models.ForeignKey(Accessory, on_delete=models.CASCADE)
    quantity          = models.IntegerField(default=1)


#forms.py
class Offerform(ModelForm):
    accessories = forms.ModelMultipleChoiceField(
                widget=forms.CheckboxSelectMultiple(),
                queryset=Accessory.objects.all())

    class Meta:
        model   = Offer
        fields  = '__all__'

我已通过我在其中指定了数量的自定义表格(附件)链接了我的报价附件。但是,如何在表单中获取“数量”作为字段,以便我可以选择附件并指定数量?

python django many-to-many
1个回答
0
投票

仅获得一个归档名称字段=('数量')

© www.soinside.com 2019 - 2024. All rights reserved.