В ваших представлениях у вас есть:
def author_view(request):
if request.method == 'POST':
# DO My processing...
form = BookForm()
# How can I edit, or preset my form fields here?
c = Context({
'form': form,
})
return prepCxt(request, 'book.html', c) # Wrapper for easy display
Вы должны переместить ваш form=BookForm()
до if:
def author_view(request):
form = BookForm()
if request.method == 'POST':
# DO My processing...
В результате получается, что раздел if "POST"
добавляет значениев форме, а затем он может быть переопределен.
Во-вторых, если вы пытаетесь что-то изменить способом отображения, вам лучше всего добавить значения по умолчанию / начальные:
Django устанавливает значения формы по умолчанию :
BookForm(initial={ 'myfield': 'myval'})
если вы пытаетесь изменить значения, которые хотите сохранить в БД, то вы:
if form.is_valid():
myobject = form.save(commit=false)
myobject.myfield = mval
myobj.save()
form = BookForm(instance = myobjext)
Что-то еще?Пожалуйста, будьте более конкретны.