class ShipForm(forms.ModelForm):
class Meta:
model = Ship
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 , значит проверка пропускает на сохранение! Или я неправильно понимаю валидацию? Что ж мне, самому проверять все условия введенных данных (на уникальность, на обязательность)???