django inlineformset中的动态额外字段。

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

我正在为一个移动商店的项目工作,该项目与 IMEI 每部手机都有自己的IMEI,而卖手机的店主要看它的IMEI,现在当管理员添加新的手机时,会有一个新的IMEI。MobileStorage 例如数量=20个手机 iphone11X 有20个不同的IMEI,我想允许管理员每当他添加新的手机,然后选择数量(20),然后额外的字段将是20,如果他在数量字段填写10 IMEI的额外字段将是10。

class MobileStorage(models.Model):
    admin = models.ForeignKey(User,on_delete=models.CASCADE)
    mobile = models.ForeignKey(Mobile,on_delete=models.CASCADE)
    quantity = models.PositiveIntegerField()

class Imei(models.Model):
    imei = models.CharField(max_length=50,verbose_name='IMEI',unique=True)
    mobile = models.ForeignKey(MobileStorage,on_delete=models.CASCADE)
class Mobile(models.Model):
    mobile = models.CharField(max_length=50,unique=True)

我的表单.py

class MobileStorageForm(forms.ModelForm):
    mobile = forms.ModelChoiceField(queryset=Mobile.objects.all(),empty_label='')
    class Meta:
       model = MobileStorage
       fields = [
        'mobile','quantity'
       ]

class ImeiForm(forms.ModelForm):
    class Meta:
       model = Imei
       fields = ['imei']

我想根据数量控制额外的字段,在 MobileStorage 模型,并创建例如20实例在 Imei 模型

MobileStorageFormInlineSet = inlineformset_factory(
    MobileStorage,Imei,form=ImeiForm,fields=('imei'),extra=2,can_delete=False
)

我已经做了前端,但它只是保存最后2个字段,因为额外的字段有2个。

任何人都有一个想法,我很感激它

django django-forms inline-formset
1个回答
0
投票

嘿,U也可以使用Jquery添加字段,点击添加或删除按钮,在一个前端页面姜戈

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