using custom user model with django-allauth gives error Cannot resolve keyword 'username' into field. Choices are: activityhistory, app, ...., -


i trying integrate django-allauth, , tried use custom user model. stated here, created model

class client(abstractbaseuser):     fname = models.charfield(max_length=50)     lname = models.charfield(max_length=50)     email = models.emailfield(max_length=150, unique=true, db_index=true)     created_at = models.datetimefield(auto_now_add=true)     state_choices = (         (0, 'pending'),         (1, 'active'),         (2, 'deleted'),         (3, 'banned'),     )     state = models.smallintegerfield(choices=state_choices, default=1, editable=false)     objects = clientmanager()     username_field = 'email'     required_fields = ['fname', 'lname']     def save(self, *args, **kwargs):         #########     def get_short_name(self):         return self.fname      def get_full_name(self):         return '%s %s' % (self.fname, self.lname)      def has_perm(self, perm, obj=none):         ###########      def has_module_perms(self, app_label):         ###########      @property     def is_staff(self):         ########### 

and manager

class clientmanager(baseusermanager):     def create_user(self, fname, lname, email, created_at, state):         user = self.model(fname=fname, lname=lname, email=email, created_at=created_at, state=state)         return user      def create_superuser(self, fname, lname, email, created_at, state):         user = self.create_user(fname=fname, lname=lname, email=email, created_at=created_at, state=state)         user.is_team_player = true         user.save()         return user 

now, admin.py did

class usercreationform(forms.modelform):     #a form creating new users     class meta:         model = models.client         fields = ('fname', 'lname', 'email')   class userchangeform(forms.modelform):     #a form updating users     class meta:         model = models.client         fields = ['fname', 'lname', 'email', 'is_admin']  class clientadmin(useradmin):     # forms add , change user instances     form = userchangeform     add_form = usercreationform      list_display = ('email', 'is_admin')     list_filter = ('is_admin',)      fieldsets = (     (none, {'fields': ('email', )}),     ('personal info', {'fields': ('fname', 'lname')}),     ('permissions', {'fields': ('is_admin',)}),     )        add_fieldsets = (     (none, {         'classes': ('wide',),         'fields': ('email', 'fname', 'lname')}     ), )      search_fields = ('email',)     ordering = ('email',)     filter_horizontal = ()     admin.site.unregister(models.client) admin.site.register(models.client, clientadmin) admin.site.unregister(group) 

in settings.py added auth_user_model = 'app.client'

now when go /admin gives me error

improperlyconfigured @ /admin cannot resolve keyword 'username' field. choices are: activityhistory, app, created_at, email, emailaddress, fname, id, is_active, is_admin, last_login, lname, logentry, password, socialaccount, state, testdevice 

the stack trace tells me since treats email username, , use username , password logging in, gives me error. can't make django ignore restriction admin only, or can change login mechanism admin use email rather username?

i trying use django-allauth letting user sign-in through google or signup using email , password. been tough ride me till now. if has done before or knows how easily, pointing me references great.

first, add custom user model:

class client(abstractbaseuser):    class meta:       swappable = 'auth_user_model' 

also, add settings.py file:

account_authentication_method = 'email' account_user_model_username_field = none 

from docs:

(...) if custom user model not have username field (again, not mistaken e-mail address or user id), need set account_user_model_username_field none. disable username related functionality in allauth.

that worked me.

references:

[1] https://github.com/pennersr/django-allauth#custom-user-models

[2] https://code.djangoproject.com/wiki/contribauthimprovements


Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

javascript - addthis share facebook and google+ url -

ios - Show keyboard with UITextField in the input accessory view -