나는 문서를 읽고 내 모델에서 UserProfile 테이블을 설정하고 관리 영역의 User 테이블과 연결 한 다음 등록 할 때이 UserProfile 테이블에 내 사용자에 대한 추가 정보를 저장하려고합니다. 위 내 코드의 주석에서 볼 수 있듯이Django에서 User 테이블과 연결된 UserProfile 테이블에 어떻게 데이터를 저장할 수 있습니까?
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 객체를 검색 할 수 있습니다,하지만 난 거기에서 이동 위치를 모르는 : views.py
에서
나는 다음과 같은 한 추가 데이터 (역할)를 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 테이블에 정보를 저장하는 데 사용할 수있는 방법 :
당신은 여기에서 볼 수 있습니다.
왜 그 모든 '__getitem__'물건을하고 계십니까? 그냥'query_dict [ 'username']'등을 수행하면됩니다. 이중 밑줄 메소드를 직접 호출 할 필요는 거의 없습니다. –
감사합니다. 나는 그것에 대해 궁금해하고 있었다. 이것은 Django의 첫 번째 주입니다. 그래서 나는 때로는 깊은 이해없이 맹목적으로 문서를 읽습니다. – Deonomo