django - django inlineformset 中的动态额外字段
问题描述
我正在为一家移动商店开发一个项目,该项目使用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 个字段 bcs 额外字段是 2
任何人有一个想法我很感激
解决方案
Hey U 也可以使用 Jquery 通过单击前端页面 django 中的添加或删除按钮来添加字段
推荐阅读
- javascript - 在一个网页上的多个图像上使用叠加层
- vb.net - 如何在 do 循环中等待用户输入?
- ios - 为什么 .isHidden 会导致溶解动画?
- arrays - 我怎样才能推入这个数组?
- ceres-solver - Ceres-Solver 因“终止:残差和雅可比评估失败”而失败。当非静态变量用于定义雅可比 for 循环时
- azure-pipelines - Azure Pipelines 构建失败并显示“来自守护程序的错误响应:容器
没有运行” - c - 如何在给定坐标的情况下隔离特定的布尔岛?
- c# - c# 程序如果由 jenkins 执行,则无法获取我的 IP 地址
- java - 在开始新活动之前等待 HttpRequest 完成
- php - 插件激活后自动创建一个带有古腾堡 HTML 块的页面