예제 #1
0
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))
예제 #2
0
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})
예제 #3
0
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})
예제 #4
0
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))
예제 #5
0
 def test_form(self):
     """testing if the form is valid"""
     form = CityForm(data=self.data_city)
     self.assertTrue(form.is_valid())