Как изменить часть формы внутри шаблона на ajax - PullRequest
1 голос
/ 17 апреля 2020

У меня есть небольшая проблема, это на сайте объявлений django, когда я делаю рекламу, есть главная форма для заголовка, описания, img, категории и есть специальная форма для примера: если пользователь выбирает автомобили категории Я хочу показать какую-то особую форму, такую ​​как Километры, Цвет, Тип кузова, Объем двигателя (CC), но если он выберет мобильный телефон, то будут отображаться разные формы, такие как модель, процессор, баран. Я надеюсь, что смогу донести идею

Мое решение таково: создайте какой-нибудь специальный класс форм, например этот forms.py

class carf(forms.ModelForm):
   class Meta:
       model = catugry
       fields = ['name', 'main'  ]

class mobilef(forms.ModelForm):
   class Meta:
       model = catugry
       fields = ['name','sub', 'end'  ]

, и в шаблоне сделайте ajax код для отправки идентификатора выбранной категории

<script>
$("#id_main").change(function () {
  var url3= ("{% url 'ads:ff'%}")  // get the url of the `load_cities` view
  var mainff = $(this).val();  // get the selected country ID from the HTML input

  $.ajax({                       // initialize an AJAX request
    url: url3,                    // set the url of the request (= localhost:8000/hr/ajax/load-cities/)
    data: {
      'mainff': mainff,

    },
    success: function (data2) {   // `data` is the return of the `load_cities` view function
      $("#fff").html(data2);
      console.log(data2);  // replace the contents of the city input with the data that came from the server


    }
  });


});

в views.py я получаю этот идентификатор и создаю условия для повторной отправки правильной формы

def ff (request):
main_ff = request.GET.get('mainff')
if main_ff == "8" :
    cat=carf()
elif main_ff == "23" :
    cat=mobilef()
else :
    cat="Ahmed"
context2 ={

    'cat':cat,
}

return render (request , 'ff.html' , context2)

, и это работает в шаблоне, когда я выбираю автомобиль

when i choose car

и когда я выбираю мобильный телефон, новая форма будет отображать

when i choose mobile than a new form will showing

, но у меня возникла проблема при отправке двух форм не могу отправить форму показа еще один способ сохранить его - это любые способы отправить переменную моей формы в пыльник def

    context2 ={

    'cat':cat,
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...