それは本当にあなたがしたいカスタマイズのレベルに依存します.
登録フォームは、異なる Django プロジェクト間で繰り返されるタスクのように見える可能性があり、ほとんどの登録プロセスで同じ基本的な手順が必要であると考えられています。ただし、プロジェクトによっては、特定の手順を拡張または除外する必要がある場合があります。
これは、登録に使用するビューの例です。
def register(request):
if request.method == 'POST':
register_form = RegisterForm(request.POST)
if register_form.is_valid():
data = register_form.data
# create user
user = User.objects.create_user(
username=data.get('username'),
email=data.get('email'),
password=data.get('password'),
)
if user is not None:
auth = authenticate(username=data.get('username'), password=data.get('password'))
login(request, auth)
messages.success(request, _('Your new user has been created.'))
return redirect(reverse('home'))
else:
messages.error(request, _('Oops! Error.'))
else:
register_form = RegisterForm()
return render(request, 'accounts/register.html')
これは、ほとんどすべてのプロジェクトで機能します。RegisterForm
すべての魔法を持っています。