Уведомления

Группа в Telegram: @pythonsu

#1 Март 1, 2011 21:31:51

pyOut
От:
Зарегистрирован: 2006-07-16
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменить значение в ModelForm

Для меня стало неожиданным поведение ModelForm.

Есть модель:

from markitup.fields import MarkupField

class Entry(models.Model):
title = models.CharField(_('Title'), max_length=255)
body = MarkupField()
Есть форма для этой модели:
class EntryForm(forms.ModelForm):
class Meta:
model = Entry
fields = ['title', 'body']
Есть вьюха:
@render_to('edit.html')
def edit(request, id):
entry = get_object_or_404(Entry, pk=id)
form = EditForm(request.POST or None, instance=entry)
if form.is_valid():
entry = form.save()
return HttpResponseRedirect(entry.get_absolute_url())
return {'form': form}
Интересует 2 вопроса:
1) Как вывести для редактирование не отрендеренное представление body в шаблоне (body.raw) ?
2) Как менять содержимое поля чтобы поле form.body поменялось. Делаю так:
class EditForm(forms.ModelForm):
class Meta:
model = Entry
fields = ['title', 'body']

def __init__(self, *args, **kwargs):
super(EditForm, self).__init__(*args, **kwargs)
self.fields['body'].initial = u"Измененное значение" ## Не помогает. Почему???



Офлайн

#2 Март 3, 2011 15:24:02

Doberman26rus
От: Ставрополь
Зарегистрирован: 2009-03-16
Сообщения: 128
Репутация: +  1  -
Профиль   Отправить e-mail  

Изменить значение в ModelForm

попробуй так

kwargs['initial'] = { 'body':'blablabla'}
и поставь
super(EditForm, self).__init__(*args, **kwargs)
в конце конструктора.



подпись

Отредактировано (Март 3, 2011 15:50:35)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version