У меня есть представление и форма в Django1.5. Если запрос POST выполнен успешно (на основе некоторых значений, которые я установил), мне нужно, чтобы страница перенаправлялась на другой URL-адрес, который создается одновременно.
В противном случае, если POST не был успешным, мне нужно оставаться на той же странице. Прямо сейчас я решил проблему следующим образом, но я совершенно уверен, что это не лучший способ сделать это:
Это часть моего взгляда:
def layer_create(request, template='layers/layer_create.html'):
if request.method == 'GET':
....
elif request.method == 'POST':
out = {}
...
new_table = 'something that comes from the form'
if form.is_valid():
...
try:
...
out['success'] = True
except:
...
out['success'] = False
finally:
if out['success']:
status_code = 200
# THIS IS THE PART WHICH I THINK I CAN IMPROVE
template = '/something/workspace:' + new_table + '/metadata'
else: # if form not valid
out['success'] = False
return render_to_response(template, RequestContext(request, {'form': form}))
Эта часть кода:
template = '/something/workspace:' + new_table + '/metadata'
мне кажется очень некрасивым. Но поскольку я новичок в Django, я не знаю, как подступиться к этому вопросу.