无法在django的html页面上检索登录的用户特定内容

无法在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

我已经成功创建了一个登录页面,我可以在用户注册后登录。但我无法检索用户数据并将其显示在用户主页上,除了用户的用户名和电子邮件(这是我继承的内置用户模型)。 在这里,我想显示用户登录后在其主页上的个人资料图片。提前感谢

models.py

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")