Я пытаюсь следовать документации и настроить таблицу UserProfile в моей модели, связать ее с таблицей User в области администратора, а затем сохранить дополнительную информацию о моих пользователях в этой таблице UserProfile при регистрации.
В views.py
у меня есть следующее:
from django.contrib.auth import authenticate, login, logout
def register(request):
if request.method == 'POST':
query_dict = request.POST
username = query_dict.__getitem__("username")
email = query_dict.__getitem__("user_email")
password = query_dict.__getitem__("password")
repeat_password = query_dict.__getitem__("repeat_password")
role = query_dict.__getitem__("role")
user = User.objects.create_user(username, email, password)
# django.db.models.signals.post_save gets called here and creates the UserProfile
# I can write something like user_profile = user.get_profile() but I don't
# know how to save information to the profile.
user = authenticate(username=username, password=password)
if user is not None and user.is_active:
login(request, user)
return HttpResponseRedirect("/")
Как вы можете видеть в комментариях в моем коде выше, я могу получить связанный объект UserProfile, но я не знаю, где это сделать.перейдите оттуда, чтобы сохранить дополнительные данные (роль) в таблице UserProfile.Вся документация говорит мне:
get_profile () Возвращает профиль конкретного пользователя для этого пользователя.Повышает django.contrib.auth.models.SiteProfileNotAvailable, если текущий сайт не разрешает профили, или django.core.exceptions.ObjectDoesNotExist, если у пользователя нет профиля.
Вы можете просмотреть егоздесь: https://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.models.User.get_profile
Но документы не сообщают мне, какой тип объекта get_profile()
возвращается, или как я могу использовать его для хранения информации в таблице UserProfile.