Форум сайта python.su
есть форма:
class ReportForm(forms.Form):
out_request = forms.DateTimeField(widget=AdminSplitDateTime,initial=datetime.datetime.now)
action_problem = forms.CharField()
remark = forms.CharField( max_length=300,required=False)
def reportform(request):
if request.method == 'POST':
form = ReportForm(request.POST)
if form.is_valid():
new_form = form.save(commit=False)
new_form.save()
return HttpResponseRedirect('/report/')
else:
form = ReportForm()
return render_to_response('project_db/reportform.html', {'form': form})
Офлайн
а почему бы не сделать просто
if form.is_valid():
new_form = form.save()
Офлайн
redixinпробовал и так,все равно выдает ‘ReportForm’ object has no attribute ‘save’
а почему бы не сделать простоif form.is_valid():
new_form = form.save()
Офлайн
ой, торможу.. тут save() быть и не может, это есть только у http://www.djangoproject.com/documentation/modelforms/
Офлайн
<<AlexLis>>
Пользуйтесь BB разметкой для выделения кода, пожалуйста. Надоело уже править.
И да, у обычной формы нет метода save(). Да и куда ему, если бы был, сохранять дынный вообще, вы подумали?
Офлайн
А не могли бы вы приветси пример save() для моей формы?заранее спаибо
Офлайн
<<AlexLis>>
form = ReportForm(request.POST)
if form.is_valid():
f= Report(out_request = form.cleaned_data['out_request'],
action_problem = form.cleaned_data['action_problem'],
remark = form.cleaned_data['remark']).save()
Отредактировано (Авг. 20, 2008 10:26:33)
Офлайн
Не, ну зачем же из формы form, являющейся инстансом ReportForm, делать новый инстанс ReportForm f? Наверное есть модель Report, тогда:
form = ReportForm(request.POST)
if form.is_valid():
r= Report(out_request = form.cleaned_data['out_request'],
action_problem = form.cleaned_data['action_problem'],
remark = form.cleaned_data['remark']).save()
Отредактировано (Авг. 20, 2008 09:59:56)
Офлайн
max
Сорри, хотел написать одно, получилось другое. Это все “copy-paste” виноват :)
Офлайн
Хм..поблему решил,но по-моему не оптимально..gередаю в форму id редактируемой записи.
form.py
class ReportForm(forms.Form):
out_request = forms.DateTimeField(widget=AdminSplitDateTime,initial=datetime.datetime.now)
action_problem = forms.CharField()
remark = forms.CharField(required=False)
view.py
def reportform(request,pk):
pid = int(pk)
p = Log_Book.objects.get(id=pid)
if request.method == ‘POST’:
form = ReportForm(request.POST)
if form.is_valid():
p.out_request = form.cleaned_data
p.action_problem = form.cleaned_data
p.remark = form.cleaned_data
p.who_corrected = getfio(request.user)
p.check_off = ‘1’
p.save()
return HttpResponseRedirect('/myrequest/')
else:
form = ReportForm()
return render_to_response('project_db/reportform.html', {'form': form,'pk': p.id})
def report(request):
try:
p = Log_Book.objects.get(id=request.POST)
except (KeyError,Log_Book.DoesNotExist):
p = Log_Book.objects.all().filter(check_off='2', who_corrected=getfio(request.user))
return render_to_response('project_db/myrequest.html', {
‘log_books’: p,
‘username’:getfio(request.user),
‘error_message’: “You didn't select a choice.”
})
else:
f= ReportForm()
return render_to_response('project_db/reportform.html', {'form': f, ‘pk’: p.id})
Офлайн