У меня есть небольшая проблема, это на сайте объявлений 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)
, и это работает в шаблоне, когда я выбираю автомобиль
и когда я выбираю мобильный телефон, новая форма будет отображать
, но у меня возникла проблема при отправке двух форм не могу отправить форму показа еще один способ сохранить его - это любые способы отправить переменную моей формы в пыльник def
context2 ={
'cat':cat,
}