Django Admin Refresh Intermediate Form im Admin
Verfasst: Montag 9. Dezember 2013, 23:50
Hallo,
ich versuche mich derzeit am Django im Admin Bereich.
Funktioniert soweit auch ganz gut, allerdings schaffe ich kein update des forms auf einer intermediate page.
Auf der Intermediate Page, die der Admin Action folgt, ist ein Form mit einem DatePicker, dazu werden auf der Seite in abhängigkeit des
gewählten Datums die zu exportierenden Datensätze angezeigt.
Wenn nun das Datum geändert wird, und der User auf den Refresh button clickt soll
der User auf der Intermediate Page bleiben, bzw. diese neu geladen werden mit dem Datumsabhängigen Inhalt (Vorschau).
Erst mit Generate oder Abbrechen soll die seite verlassen werden.
Dummerweise führt auch der refresh button zur Admin-Liste zurück.
Was ist hier falsch?
Die <form action="" method="post"> ?
Allerdings habe ich ja für die Intermediate Page keine echte URL die verwendbar wäre.
ich versuche mich derzeit am Django im Admin Bereich.
Funktioniert soweit auch ganz gut, allerdings schaffe ich kein update des forms auf einer intermediate page.
Auf der Intermediate Page, die der Admin Action folgt, ist ein Form mit einem DatePicker, dazu werden auf der Seite in abhängigkeit des
gewählten Datums die zu exportierenden Datensätze angezeigt.
Wenn nun das Datum geändert wird, und der User auf den Refresh button clickt soll
der User auf der Intermediate Page bleiben, bzw. diese neu geladen werden mit dem Datumsabhängigen Inhalt (Vorschau).
Erst mit Generate oder Abbrechen soll die seite verlassen werden.
Dummerweise führt auch der refresh button zur Admin-Liste zurück.
Was ist hier falsch?
Die <form action="" method="post"> ?
Allerdings habe ich ja für die Intermediate Page keine echte URL die verwendbar wäre.
Code: Alles auswählen
def create_export(self, request, queryset):
form = None
dynamic_stuff = "DEFAULT"
# check if the form is submitted as post and contains the correct form action
if request.method == 'POST' and \
('cancel' in request.POST or 'generate' in request.POST or 'refresh' in request.POST):
# create a form bound to the POST data - without form we cant render correctly
form = CreateExportForm(request.POST)
# check if the cancel button was clicked
if 'cancel' in request.POST:
self.message_user(request, 'export abgebrochen')
return HttpResponseRedirect(request.get_full_path())
# check if the refresh html button was clicked
if 'refresh' in request.POST:
if form.is_valid(): # All validation rules pass
# Process the data in form.cleaned_data
date_selection = form.cleaned_data['selected_date']
if date_selection == SOME_DATE:
dynamic_stuff = "dynamic blah"
# check if the create button was clicked
if 'generate' in request.POST:
if form.is_valid(): # All validation rules pass
pass
else:
# An unbound form
form = CreateExortForm(initial={'_selected_action': request.POST.getlist(admin.ACTION_CHECKBOX_NAME)})
# always render a response
return render_to_response('admin/create_export.html', {
'form': form,
'dynamic_stuff' : dynamic_stuff},
context_instance=RequestContext(request))
Code: Alles auswählen
[...]
{{ form }}
<br>
{{ dynamic_stuff }}
<form action="" method="post">
{% csrf_token %}
<input type="hidden" name="action" value="create_export" />
<input type="submit" name="cancel" value="Abbrechen" />
<input type="submit" name="generate" value="erstellen" />
<input type="submit" name="refresh" value="Aktualisieren" />
</form>
[...]