ユーザーの登録とサインインに使用されるすべてのモデル、ビュー、およびフォームを含むアカウントという名前のアプリがあります。
アカウントアプリのすべてのフォームを含むと思われるアプリフォルダーの外にあるテンプレートがあります。
テンプレートにフォームを表示しようとして問題が発生しています。
誰かが私を助けることができますか?
コードの一部を次に示します。
accounts/forms.py
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
# Safe from injection, etc.
class UserRegistrationForm(UserCreationForm):
email = forms.EmailField(required = True)
first_name = forms.CharField(max_length=30, required=True)
last_name = forms.CharField(max_length=30, required=True)
class Meta:
model = User
fields = ('username','email','password1', 'password2','first_name','last_name')
def save(self, commit=True):
user = super(UserRegistrationForm, self).save(commit=False)
user.email = self.cleaned_data['email']
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
if commit:
user.save()
return user
accounts/view.py
from forms import UserRegistrationForm
def register_user(request):
if request.POST:
form = UserRegistrationForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/accounts/register_success')
else:
form = UserRegistrationForm()
args = {}
# prevent forgery
args.update(csrf(request))
# empty form
args['form'] = form
return render_to_response('signup.html', args)
def register_success(request):
return render_to_response('signup_success.html')
最後に、アカウント フォルダーにないテンプレートです。settings.py と同じフォルダにあります。
signup.html
{% extends "base.html" %}
{% block content %}
<form action="" method="post"> {% csrf_token %}
<ul>
{{accounts.form.as_ul}}
</ul>
<input type="submit" name="submit" value="Register">
</form>
{% endblock %}
アップデート
プロジェクト マネージャーからテンプレートの移動の許可を得て、accounts/template に移動し、render を response アドレスに変更しました。現在、フォームが送信されないという新しい問題があります。OMG 何が起こっているのですか??