Найти - Пользователи
Полная версия: проблемы с формой и валидацией
Начало » Django » проблемы с формой и валидацией
1
Alexandr
forms.py:
class ShipForm(forms.ModelForm):
class Meta:
model = Ship
views.py:
def ShipEdit(request, queryset, object_id):
One_ship = get_object_or_404(queryset, pk=object_id)
form = ShipForm(request.POST, instance = One_ship, initial={'name': One_ship.name})
if request.POST:
if form.is_valid:
ship1 = form.save()
return HttpResponseRedirect('/adm/ship/')
t = loader.get_template('ship_edit.html')
c = RequestContext(request, {'form': form, 'ship': One_ship})
return HttpResponse(t.render(c))
Проблемы такие:
1) при показе формы в поле ввода не попадает значение этого поля из БД, хотя именно оно там, потому что при сохранении эта запись заменяется тем значением, которое вводишь в форму. Т.е. почему в поле не отображается значение текущей записи ship , которое предполагается отредактировать ?
2) Если нажимаем кнопку сохранения в форме при незаполненном поле (т.е. пустом) - возникает ошибка “The Ship could not be changed because the data didn't validate.” Это потому что поле БД определено как обязательное. ОДНАКО! ведь сохранение формы в коде происходит, если form.is_valid = True , значит проверка пропускает на сохранение! Или я неправильно понимаю валидацию? Что ж мне, самому проверять все условия введенных данных (на уникальность, на обязательность)???
Alexandr
Alexandr
Проблемы такие:
1) при показе формы в поле ввода не попадает значение этого поля из БД, хотя именно оно там, потому что при сохранении эта запись заменяется тем значением, которое вводишь в форму. Т.е. почему в поле не отображается значение текущей записи ship , которое предполагается отредактировать ?
Спасибо за молчание, это стимулирует мозг :)
Первую проблему решил.
Alexandr
2) Если нажимаем кнопку сохранения в форме при незаполненном поле (т.е. пустом) - возникает ошибка “The Ship could not be changed because the data didn't validate.” Это потому что поле БД определено как обязательное. ОДНАКО! ведь сохранение формы в коде происходит, если form.is_valid = True , значит проверка пропускает на сохранение! Или я неправильно понимаю валидацию? Что ж мне, самому проверять все условия введенных данных (на уникальность, на обязательность)???
А вот это не получается, при “неправильных” данных (пустое поле или с уже существующим значением) вылетает вышеуказанная ошибка… Подозреваю, что проверкой введенных данных должна заниматься форма, которая якобы не знает про модель и про её правила - хотя в форме явно написано, что она формируется из модели… Так как же мне проверить введенные данные на правильность?
Не злитесь, это моя первая форма :(
Ferroman
form.is_valid()
Alexandr
етить! Спасибо!!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB