как использовать модальное окно с формой django - PullRequest
0 голосов
/ 13 июля 2020

Я работаю над проектом, у которого есть 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? возможно ли это? Я очень ценю вашу помощь, пожалуйста

...