내 django 프로젝트에서 사용자 프로필을 업데이트하기위한 페이지가 있습니다. 뷰 코드는 다음과 같습니다django의보기 코드에서 양식 속성을 업데이트하는 방법
내 양식은 다음과 같습니다@login_required
def updateProfile(request, user_id):
if request.method == 'POST':
form = UserProfileForm(request.POST)
if form.is_valid():
form.user_id = user_id
form.save(commit=True)
return index(request)
else:
profile, created = UserProfile.objects.get_or_create(user_id = self.user_id) # don't know if this will actually work.
profile_form = UserProfileForm(profile)
context = {
'user' : request.user,
'form' : profile_form
}
return render(request, 'myapp/profile.html', context)
:
내 사용자 프로필은 다음과 같습니다class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ['age', 'skill_level']
이 게시됩니다
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
age = models.IntegerField(default=18)
skill_level = models.ForeignKey(SkillLevel)
을에, 우리는받을 것 올바른 양식과 함께 유효한 user_id
인 것으로 보입니다. UserProfileForm
양식에는 user_id
이 포함되어 있지 않으므로 렌더링 할 때 사용자가이를 바꿀 수 없도록합니다. 대신 user_id는 별도의 매개 변수로 게시됩니다 (이 매개 변수를 입력하면 이상하게 보입니다). 나는 에 의해 캡슐화 된 UserProfile
을 게시 할 때 데이터베이스에 저장하려고하므로 user_id
을 입력하고 을 반환하는 .save(commit=True)
을 호출하려고합니다.
내 질문은 간단합니다. 폼 데이터에서 저장된 기본 UserProfile 객체를 정보와 함께 어떻게 얻을 수 있습니까?
나에게 UserProfile 모델을 보여줄 수 있으며 프로필 업데이트 사용자가 로그인했는지 여부를 알려 주실 수 있습니까? – dhana
@dhana UserProfile 모델을 추가했습니다. 나는 그 질문의 두 번째 부분을 이해하지 못한다. 사용자는 로그인해야합니다. – Jim
예, 사용자 프로필을 업데이트 할 때? – dhana