#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. можете ли вы, пожалуйста, привести пример кода, используя мой пример