截至目前,我有我的登記表和我的登錄表格在兩個不同的頁面上,我似乎無法將它們放在一個視圖中,因爲我做到了這一點,這些視圖需要不同的返回語句。因此,這裏是我的註冊視圖功能:如何在同一索引頁面上登錄和註冊表單
def register_user(request):
if request.method == 'POST':
form = MyRegistrationForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/accounts/register_success')
args = {}
args.update(csrf(request))
args['form'] = MyRegistrationForm()
return render_to_response('register.html', args)
def register_success(request):
return render_to_response('register_success.html')
,這裏是我的登錄和認證的看法:
def login(request):
c = {}
c.update(csrf(request))
return render_to_response('login.html', c)
def auth_view(request):
username = request.POST.get('username', '')
password = request.POST.get('password', '')
user = auth.authenticate(username=username, password=password)
if user is not None:
auth.login(request, user)
return HttpResponseRedirect('/accounts/loggedin')
else:
return HttpResponseRedirect('/accounts/invalid')
這裏是頁日誌模板:
<form action="/accounts/auth/" method="post">{% csrf_token %}
<label for="username">User name:</label>
<input type="text" name="username" value="" id="username">
<label for="password">Password:</label>
<input type="password" name="password" value="" id="password">
<input type="submit" value="login" />
</form>
和這裏是註冊頁面的模板:
<h2>Register</h2>
<form action="/accounts/register/" method="post">{% csrf_token %}
{{form}}
<input type="submit" value="Register" />
</form>
再一次,我似乎無法把它們放在一起,因爲意見必須返回不同的東西..任何想法如何做到這一點?
編輯:這是我的urls.py:
url(r'^admin/', include(admin.site.urls)),
url(r'^$', index),
url(r'^accounts/auth/$', auth_view),
url(r'^invalid/$', invalid_login),
url(r'^accounts/register/$', register_user),
url(r'^accounts/register_success/$', register_success),
所以它只會如果URL賬戶使用register_user視圖/註冊,我希望它用戶register_view觀點如果是主頁(^$)。我的索引視圖是這樣的:
def index(request):
c = {}
c.update(csrf(request))
return render_to_response('index.html', c)
它基本上只是添加一個csrf標記到我的index.html(登錄模板,如上所示)。這就是爲什麼我想能夠以某種方式合併索引和register_user視圖,因爲register_user視圖調用在註冊模板中使用的實際form = MyRegistrationForm(request.POST)(註冊模板使用{{form}}
我認爲這將產生一個很好的分離,當涉及到的意見。我不會改變它。 –
爲什麼你會希望它在同一視圖中的任何原因? –
好的,我編輯了我的文章,你能再次閱讀編輯部分嗎?我改變了我想放在一起的兩個觀點。 – user216485