Добавить элемент в выпадающий список без обновления

#python #django

#python #django

Вопрос:

введите описание изображения здесь

Город — это (выпадающий список в основной форме) с кнопкой (Добавить).

Эта кнопка (Добавить) открывает другую форму в отдельном окне.

введите описание изображения здесь

При сохранении нового города во второй форме я хочу, чтобы новое название города было добавлено в раскрывающийся список города без обновления основной формы.

Вот мой код.

 <form method="POST" enctype="multipart/form-data" id="form">
    {% csrf_token %}      
    <td>City: {{ form.city }}
    <button class="btn btn-primary" onclick="addCity(event)"> </button>
    </td>
    <button type="submit" class="btn btn-primary">Save</button>    
</form>

<script>
    function addCity(e){
        e.preventDefault();
        window.open("/city/", "", "width=500,height=500");
    }
</script>
 

city.html

 <form method="POST" class="post-form" action="/city/" id="form"> 

  {% csrf_token %} 

  <div class="container">                  
    <div class="form-group row">  
      <label class="col-sm-2 col-form-label">City:</label>  
      <div class="col-sm-4">  
      {{ form.name }}  
      </div>  
    </div>  

    <button type="submit" class="btn btn-primary">Save</button>      
    </div>  

</form>
 

urls.py

 urlpatterns = [  
     path('city/', views.add_city, name='city_master'),
]
 

views.py

 def add_city(request):
    cities = City.objects.all()  

    if request.method == "POST":  
        form = CityForm(request.POST)  
        if form.is_valid():  
            try:  
                form.save()  
                return redirect('/city/')  
            except:  
                pass  
    else:  
        form = CityForm()  
    return render(request,'city.html',{'form':form})  
 

Ответ №1:

Я не могу комментировать, поэтому я пишу здесь, сэр, вам нужен вызов ajax. Не используйте POST-запрос, для всех post-запросов страница перезагружается самостоятельно. поэтому попробуйте использовать ajax, вы можете создать маршрут и функцию внутри контроллера.

Комментарии:

1. можете ли вы, пожалуйста, привести пример кода, используя мой пример