Я работаю над проектом, у которого есть inlineformset, мне нужно сделать поле в дочерней форме модальным, а не всей формой
class MobileCustomer(models.Model):
customer = models.CharField(max_length=30)
mobile = models.ManyToManyField(Mobile,through='SelectMobileCustomer')
class SelectMobileCustomer(models.Model):
mobile = models.ForeignKey(Mobile,on_delete=models.CASCADE)
item = models.ForeignKey(MobileCustomer,on_delete=models.CASCADE)
quantity = models.PositiveIntegerField(default=1)
price = models.PositiveIntegerField()
imei = models.ManyToManyField(Imei)
class Imei(models.Model):
imei = models.CharField(max_length=50,verbose_name='IMEI',unique=True)
mobile = models.ForeignKey(Mobile,on_delete=models.CASCADE)
например, если quantity
в SelectMobileCustomer
равно 4, тогда я должен выбрать 4 imei, я хочу сделать поле imei
в SelectMobileCustomer
как всплывающее поле ввода (модальное)?
и my forms.py
class MobileCustomerForm(forms.ModelForm):
class Meta:
model = MobileCustomer
fields = ['customer']
class SelectMobileCustomerForm(forms.ModelForm):
mobile = forms.ModelChoiceField(queryset=MobileStorage.objects.all())
imei = forms.ModelMultipleChoiceField(queryset=Imei.objects.all())
class Meta:
model = SelectMobileCustomer
fields = ['mobile','quantity','price''imei']
и это мой набор встроенных форм
MobileCustomerInlineFormSet = inlineformset_factory(
MobileCustomer,SelectMobileCustomer,form=SelectMobileCustomerForm,fields=('mobile','quantity','price','imei'),extra=1)
мои шаблоны выглядят так
<form method="POST">{% csrf_token %}
{{mobile_form.management_form}}
<div class="col-6 inp text-center" style="border-radius: 10px !important;">
{{form.customer'}}
</div>
</div>
</div>
<!-- order -->
<div class="col-12 p-0 border-top border-light ">
<table class="customeTable col-12 table-responsive-sm info text-center table1 mx-auto mb-2 ">
<!--Table head-->
<thead>
<tr >
<th>some headers</th>
</tr>
</thead>
<!--Table body-->
<tbody class="tbody tb1 ">
{% for mobile in mobile_form.forms %}
<tr class="p-0 col-12">
<td class="">
{{mobile.imei | add_class:'col-12 text-center' }}
</td>
</div>
</td>
<td class="">
<div class="col-12 p-0 mt-3 inp">
{{mobile.price | add_class:'col-12 text-center'}}
</td>
<td class="">
<div class="col-12 p-0 mt-3 inp">
{{mobile.quantity | add_class:'col-12 text-center'}}
</div>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="col-12 col-sm-7 mt-2 mx-auto mb-3">
<button class="btn btn-light btn-block shadow-lg mt-1 btn-sm">save</button>
</div>
</div>
</form>
Я хочу, чтобы imei как всплывающая кнопка включала imei
? возможно ли это? Я очень ценю вашу помощь, пожалуйста