如何在django inlineformset中动态设置额外字段

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

我正在为一个移动商店的项目工作,该项目可与IMEI个移动电话一起使用,每个移动电话都有其自己的imei,并且销售电话的商店的所有者取决于其IMEI,现在管理员在其中添加新的移动电话时MobileStorage例如数量= 20移动电话iphone11X有20个不同的IMEI,我想让管理员每当他添加新移动电话然后选择数量(20)时,如果他在数量字段中填入10,则额外字段将为20 IMEI的额外字段将为10

class MobileStorage(models.Model):
    admin = models.ForeignKey(User,on_delete=models.CASCADE)
    mobile = models.ForeignKey(Mobile,on_delete=models.CASCADE)
    imei = models.ForeignKey(Imei,on_delete=models.CASCADE,verbose_name='IMEI')
    quantity = models.PositiveIntegerField()

class Imei(models.Model):
    imei = models.CharField(max_length=50,verbose_name='IMEI',unique=True)

class Mobile(models.Model):
    mobile = models.CharField(max_length=50,unique=True)

我的forms.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模型中的数量,以及在Imei模型中创建例如20个实例

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

任何人都有想法,我都感激

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

嘿,您也可以使用jQuery通过单击前端页面django中的添加或删除按钮来添加字段

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