【发布时间】:2016-01-10 09:24:24
【问题描述】:
我正在尝试创建一个系统,除非请求来自特定位置,否则无法访问某些页面。我目前一切正常,除了在检查位置并将请求重定向到下一个视图之后,下一个视图上的表单没有正确发布。它仍在尝试发布位置数据表单。
你会在我的views.py 中看到我的意思:
def add(request):
if request.method == 'POST':
form = StudentModelForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/')
else:
form = StudentModelForm()
context_data = {'form': form}
return render(request, 'add.html', context_data)
def location_check_add(request):
if request.method == 'POST' and 'lat' in request.POST:
user_lat = request.POST.get('lat')
user_lon = request.POST.get('lon')
if good_location(user_lat,user_lon):
return add(request)
else:
return render(request, 'location.html')
return render(request, 'checking.html')
所以如果good_location 为真,我会尝试重定向到add() 视图。它正确重定向,但是当用户尝试在add.html 上发布表单时,django 认为它再次在location_check_add 中提交表单。
编辑:添加urls.py 以供参考
import users.views
urlpatterns = patterns('',
url(r'^$', users.views.index, name = 'index'),
url(r'^admin/', include(admin.site.urls)),
url(r'^add/', users.views.location_check_add, name = 'add'),
)
【问题讨论】:
标签: python django redirect view location