无法在django的html页面上检索登录的用户特定内容
我已经成功创建了一个登录页面,我可以在用户注册后登录。但我无法检索用户数据并将其显示在用户主页上,除了用户的用户名和电子邮件(这是我继承的内置用户模型)。 在这里,我想显示用户登录后在其主页上的个人资料图片。提前感谢 models.py无法在django的html页面上检索登录的用户特定内容,django,Django,我已经成功创建了一个登录页面,我可以在用户注册后登录。但我无法检索用户数据并将其显示在用户主页上,除了用户的用户名和电子邮件(这是我继承的内置用户模型)。 在这里,我想显示用户登录后在其主页上的个人资料图片。提前感谢 models.py class Profile(models.Model): user = models.OneToOneField(User) first_Name=models.CharField(max_length=26,default=" ") last_Name=mo
class Profile(models.Model):
user = models.OneToOneField(User)
first_Name=models.CharField(max_length=26,default=" ")
last_Name=models.CharField(max_length=26,default=" ")
gender=models.CharField(max_length=10)
father_name=models.CharField(max_length=56)
profile_pic=models.ImageField(max_length=100,upload_to='profile_pics')
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
profile=Profile.objects.create(user=instance)
instance.profile.save()
def __str__(self):
return self.user.username
forms.py
类UserForm(forms.ModelForm):
password=forms.CharField(widget=forms.PasswordInput())
类UserProfileInfoForm(forms.ModelForm):
views.py
@login_required
def IndexView(request,user_id):
user = User.objects.get(pk=user_id)
profile_pict=user.profile.profile_pic
return render(request,"studenthome.html",{
'username': user.username,
'address':user.profile.address,
'profile_pict':profile_pict,
})
class LoginView(View):
form_class = UserForm
template_name="login.html"
def get(self,request):
form=self.form_class(None)
return render(request,self.template_name,{'form':form})
def post(self, request):
password = request.POST['password']
username = request.POST['username']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
if user.is_staff:
login(request, user)
return render(request,'teacher.html',{'username':user.username})
else:
login(request,user)
return render(request,'studenthome.html',{'username':user.username})
# return redirect('IITMApp:index')
else:
return HttpResponse("Inactive user.")
else:
# return redirect("IITApp:login")
return render(request, 'login.html',{
'login_message' : 'Enter the username and password correctly',})
return render(request, "studenthome.html")
通过查看您的代码,您仅将用户名传递给模板,而不是完整的用户对象。见第行:
返回呈现(请求,'teacher.html',{'username':user.username})
如果您将其传递为:
返回呈现(请求,'teacher.html',{'user':user})
您还可以使用django的默认登录函数
您将能够访问模板中用户模型的所有字段
如果这不起作用,请告诉我
class Meta():
model=Profile
fields=('first_Name','last_Name','gender','father_name','profile_pic')
@login_required
def IndexView(request,user_id):
user = User.objects.get(pk=user_id)
profile_pict=user.profile.profile_pic
return render(request,"studenthome.html",{
'username': user.username,
'address':user.profile.address,
'profile_pict':profile_pict,
})
class LoginView(View):
form_class = UserForm
template_name="login.html"
def get(self,request):
form=self.form_class(None)
return render(request,self.template_name,{'form':form})
def post(self, request):
password = request.POST['password']
username = request.POST['username']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
if user.is_staff:
login(request, user)
return render(request,'teacher.html',{'username':user.username})
else:
login(request,user)
return render(request,'studenthome.html',{'username':user.username})
# return redirect('IITMApp:index')
else:
return HttpResponse("Inactive user.")
else:
# return redirect("IITApp:login")
return render(request, 'login.html',{
'login_message' : 'Enter the username and password correctly',})
return render(request, "studenthome.html")