Пользовательский пользователь django-allauth не работает должным образом
Я пытаюсь использовать Extra Data
из Social accounts
, но сначала мне нужно создать пользовательского пользователя,
вот мой подход, поля созданы, но по какой-то причине они не установлены в
custom_field1 = 12
custom_field2 = "hey"
#forms.py
from allauth.socialaccount.forms import SignupForm
from django import forms
from pprint import pprint
class MyCustomSocialSignupForm(SignupForm):
first_name = forms.CharField(label='First Name')
last_name = forms.CharField(label='Last Name')
custom_field1 = forms.IntegerField(label='Custom field 1')
custom_field2 = forms.CharField(label='Custom field 2')
def save(self, request):
pprint(vars(request))
user = super(SignupForm, self).save(request)
custom_field1 = 12
custom_field2 = "hey"
user.custom_field1 = custom_field1
user.custom_field2 = custom_field2
user.save()
return user
#setting.py
AUTH_USER_MODEL = 'MyUser.User'
SOCIALACCOUNT_FORMS = {'signup': 'MyUser.forms.MyCustomSocialSignupForm'}
#models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
from pprint import pprint
class User(AbstractUser):
custom_field1 = models.IntegerField(default=10)
custom_field2 = models.CharField(max_length=20)
#admin.py
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import User
class CustomUserAdmin(UserAdmin):
fieldsets = (
*UserAdmin.fieldsets, # original form fieldsets, expanded
( # new fieldset added on to the bottom
'Custom Field Heading', # group heading of your choice; set to None for a blank space instead of a header
{
'fields': (
'custom_field1',
'custom_field2'
),
},
),
)
admin.site.register(User, CustomUserAdmin)
с помощью этого кода я получаю 2 пользовательских поля, но custom_field1
установлено значение 10 (по умолчанию)
и custom_field2
установлено значение None (также по умолчанию)
Первое, что пришло мне в голову, это добавить custom_field1 = 12
и custom_field2 = "hey"
к MyCustomSocialSignupForm.save()
в forms.py
, но, очевидно, это совершенно неправильно.
Как я могу установить пользовательские поля при входе пользователя в discord?