정말 원하는 수준의 맞춤 설정에 달려 있습니다.
등록 양식은 다른 장고 프로젝트 중에서 반복되는 작업처럼 보일 수 있으며 대부분의 등록 프로세스에는 동일한 기본 단계가 필요하다고 생각됩니다. 그러나 다른 프로젝트의 경우 특정 단계를 확장하거나 제외해야 할 수 있습니다. 이것은 거의 모든 내 프로젝트에 대한 작동
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
에는 모든 마법이 있습니다.
저는 주로 교육 목적으로 승인을 사용하는 것을 선호합니다. 이메일을 통해 등록 확인을 관리하는 것이 조금 걱정 스럽습니다. 어떻게 그걸합니까? – supermario
여러 가지 방법이 있습니다. 사용자에게 OneToOne 필드가 있고 확인 키가 들어있는 다른 필드가있는 모델을 만들 수 있습니다. 내 답변의 '등록'보기에서 확인 모델의 새 인스턴스를 만들고 확인 링크를 사용하여 사용자에게 이메일을 보내십시오. 뷰와 URL을 만들어 모델의 키를 확인한 다음 나머지 작업을 수행하십시오. 다른 방법은 키를 캐싱하고 모델/테이블을 피하는 것입니다. – abstractpaper