, :
, CustomUser, , allauth.
settings.py
INSTALLED_APPS = [
...
'CustomUser.apps.CustomuserConfig',
]
AUTH_USER_MODEL = 'CustomUser.CustomUser'
CustomUser/models.py
from __future__ import unicode_literals
from django.contrib.auth.models import AbstractUser
from django.db import models
class CustomUser(AbstractUser):
add_your_custom_fields_here
CustomUser/apps.py
from __future__ import unicode_literals
from django.apps import AppConfig
class CustomuserConfig(AppConfig):
name = 'CustomUser'
CustomUser/admin.py
from django.contrib import admin
from .models import CustomUser
admin.site.register(CustomUser)
migrate , . , .
- - .
User allauth. form.py CustomUser, :
django
.models import CustomUser
class UpdateUserForm(forms.ModelForm):
class Meta:
model = CustomUser
fields = ('first_name', 'last_name', 'institution')
CustomUser/templates/profile.html . :
Update your data <br><br>
<form action="." method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit" />
</form>
CustomUser/views.py, profile.html
from django.shortcuts import render
from .forms import UpdateUserForm
from django.http import HttpResponseRedirect
from django.views.generic import UpdateView
from django.core.urlresolvers import reverse_lazy
def profile(UpdateView):
if request.method == 'POST':
form = UpdateUserForm(request.POST)
if form.is_valid():
return HttpResponseRedirect('/accounts/profile/')
else:
form = UpdateUserForm()
return render(request, 'profile.html', {'form':form})
class UserUpdate(UpdateView):
form_class = UpdateUserForm
template_name = 'profile.html'
success_url = reverse_lazy('profile')
def get_object(self, queryset=None):
return self.request.user
, profile.html urls.py voilà:
from CustomUser import views
url(r'^accounts/profile/$', views.UserUpdate.as_view() , name='profile'),
, -...