/ / Úpravy formulárovPrezeranie dát formulára pred ukážkou v Django - django, formuláre

Úprava formulára FormPreview formulára pred náhľadom v Django - django, formulároch

Chcel by som zmeniť údaje zhromaždené z formulára po tom, čo používateľ klikne na tlačidlo Ukážka, ale predtým, ako sa im znova zobrazí.

class StoryForm(forms.Form):
title = forms.CharField()
story = forms.CharField(widget=forms.Textarea)

class StoryFormPreview(FormPreview):

def done(self, request, cleaned_data):
# Do something with the cleaned_data, then redirect
# to a "success" page.
return HttpResponseRedirect("/form/success")

Pred zobrazením ukážky chcem pripojiťbez ohľadu na to, čo používateľ zadal do poľa príbehu, a pridajte „Priniesol vám to.“ Ako by som k tomu mal ísť? Veľa som si pohrával s metódami process_preview a preview_post, ale nemohol som nič uviesť.

odpovede:

0 pre odpoveď č. 1

Ako som pochopil, môžete to zmeniť pomocou

def process_preview(self, request, form, context):
"""
Given a validated form, performs any extra processing before displaying
the preview page, and saves any extra data in context.
"""
pass

UPD:

Našiel som iba riešenie s čistou formou:

class StoryForm(forms.Form):
...
def clean_story(self):
self.cleaned_data["story"] = ...
return self.cleaned_data["story"]


class StoryFormPreview(FormPreview):

def process_preview(self, request, form, context):
preview_data = {}
for key, value in form.cleaned_data.iteritems():
preview_data[key] = value

context["preview_data"] = preview_data

formtools/preview.html

{% for label, data in preview_data.iteritems %}
<tr>
<th>{{ label }}:</th>
<td>{{ data }}</td>
</tr>
{% endfor %}