を持つユーザー申し込みはその後、私は(signup.htmlに)簡単なサインアップフォームを持っているジャンゴ
<form action="adduser" method="post">
{% csrf_token %}
Email Address: <input type="email" name="email" required autocomplete="on" placeholder="[email protected]"/><br/>
Username: <input type="text" name="username" maxlength=25 required placeholder="JoyfulSophia"/><br/>
Password: <input type="password" name="password" maxlength=30 required placeholder="**********" /><br/>
<br/>
<input type="submit" value="Send" /> <input type="reset">
</form>
のログインこれは、アドユーザービューにリダイレクトします。ここでは
def adduser(request):
u = User.objects.create_user(request.POST['username'], request.POST['email'], password=request.POST['password'])
u.save()
a = Accounts(user=u)
p = Passwords(user=u)
a.save()
p.save()
return HttpResponseRedirect(reverse('OmniCloud_App.views.profile', args=(u.id,)))
はプロファイルです:
@login_required
def profile(request, User_id):
u = get_object_or_404(User, pk=User_id)
a = get_object_or_404(Accounts, pk=User_id)
return render_to_response('profile.html', context_instance=RequestContext(request))
だから、サインインしていないかもしれませんが、それはユーザ7であるため、/ accounts/login?next =/7 /に送信できますEMSは控え!)
def login(request):
username = request.POST['username']
password = request.POST['password']
user = auth.authenticate(username=username, password=password)
if user is not None and user.is_active:
auth.login(request, user)
return HttpResponseRedirect("/account/profile/")
else:
return HttpResponseRedirect("/account/invalid/")
要求は、ユーザ名と呼ばれるものが含まれていませんが、アドユーザーフォームに提出されたものではありませんので、どのように私はログインする以上、その仲間を撃つことができますか?私は、URLを解析することができます(次の= USER_IDが含まれています)が、それはちょうどbase_url/loginで入力する人のためにはうまくいかず、user_idは永遠にURLの一部にはなりません。だから弟は何をするのですか?
これは素晴らしい答えです、ありがとうございます! – Chris
私はすでにlogin.htmlを持っていますので、{form、LoginForm()...などを含める必要がありますか? – Chris
LoginFormを持つ必要はありません。自分でhtmlを入力してから、request.POSTからデータを抽出できますが、使用することをお勧めします。私も登録のために1つを使用し、それは物事を簡単にすることができます。また、作成する場合は、インポートする必要があります。私が回答フォームに書いた見解によれば、テンプレートでは 'form'として利用可能になりますが、あなたはそれを変更することができます。 –