def city_form_post( request): # обработка POST запроса из формы добавления города raw_data = CityForm(request.POST) if raw_data.is_valid(): data = raw_data.cleaned_data cities_in_db = Cities.objects.filter().values_list( ) # получаем список кортежей values городов из бащы cities_in_db_list = [] # создание пустого списка названий городов for item in cities_in_db: # обходим все кортежи в списке cities_in_db_list.append( item[1] ) # нас интересует только второй элемент в кортеже (который name), добавляем его в список # проверка есть ли полученный город из формы списке названий городов, которые уже есть в базе if data['name'] in cities_in_db_list: # если есть - возвращаем страницу с соответствующим сообщением context = {'city': data['name']} return render(request, 'result_page_city_fail.html', context) else: # если нет - добавляем новый город в базу и выводим отчет city = Cities.objects.create(**data) context = {'city': city} return render(request, 'result_page_city.html', context) data = raw_data.errors return HttpResponse('{0}'.format(data))
def city_new(request): if request.method == "POST": form = CityForm(request.POST, request.FILES) if form.is_valid(): city = form.save(commit=False) city.save() form.save_m2m() return redirect('website.views.city_detail', pk=city.pk) else: form = CityForm() return render(request, 'website/city_new.html', {'form': form})
def city_edit(request, pk): city = get_object_or_404(City, pk=pk) if request.method == "POST": form = CityForm(request.POST, request.FILES, instance=city) if form.is_valid(): city = form.save(commit=False) city.save() form.save_m2m() return redirect('website.views.city_detail', pk=city.pk) else: form = CityForm(instance=city) return render(request, 'website/city_new.html', {'form': form})
def city_form_post(request): # обработка POST запроса из формы добавления города raw_data = CityForm(request.POST) if raw_data.is_valid(): data = raw_data.cleaned_data cities_in_db = Cities.objects.filter().values_list() # получаем список кортежей values городов из бащы cities_in_db_list = [] # создание пустого списка названий городов for item in cities_in_db: # обходим все кортежи в списке cities_in_db_list.append(item[1]) # нас интересует только второй элемент в кортеже (который name), добавляем его в список # проверка есть ли полученный город из формы списке названий городов, которые уже есть в базе if data['name'] in cities_in_db_list: # если есть - возвращаем страницу с соответствующим сообщением context = {'city': data['name']} return render(request, 'result_page_city_fail.html', context) else: # если нет - добавляем новый город в базу и выводим отчет city = Cities.objects.create(**data) context = {'city': city} return render(request, 'result_page_city.html', context) data = raw_data.errors return HttpResponse('{0}'.format(data))
def test_form(self): """testing if the form is valid""" form = CityForm(data=self.data_city) self.assertTrue(form.is_valid())