# filename: myapp/models.py
from django.db import models
from django.utils.translation import ugettext as _
from datetime import datetime
from django.conf import settings
from django.contrib.auth.models import AbstractUser, Group
class MyUser(AbstractUser):
birth_date = models.DateField(null=True)
photo = models.ImageField(upload_to=..., null=True, blank=True, verbose_name=_("photo"))
创建自定义注册表:
# in file myapp/forms.py
from django import forms
from registration.forms import RegistrationForm
class MyRegistrationForm(RegistrationForm):
birth_date = ...
photo = ...
编写自定义注册视图:
# in file myapp/views.py
from registration.backends.simple.views import RegistrationView
from .forms import MyRegistrationForm
class MyRegistrationView(RegistrationView):
form_class = MyRegistrationForm
def register(self, request, form):
user = super(MyRegistrationView, self).register(request, form)
user.birth_date = form.cleaned_data["birth_date"]
user.photo = form.cleaned_data["photo"]
user.save()
return user
告诉系统您将使用自定义用户模型
# in file settings.py
AUTH_USER_MODEL = "myapp.MyUser"
添加url以调用自定义注册视图
# in file urls.py
from myapp.views import MyRegistrationView
...
urlpatterns = [
...
url(r'^accounts/register/$', MyRegistrationView.as_view(), name="registration_register"),
...
]
我建议遵循以下步骤:
定义用户模型,添加所需字段,例如
birth_date
和photo
:创建自定义注册表:
编写自定义注册视图:
告诉系统您将使用自定义用户模型
添加url以调用自定义注册视图
相关问题 更多 >
编程相关推荐