字段集值显示在个人资料页面中,但如果其他人注册,则在个人资料页面 -django 中显示错误

时间:2021-01-25 10:38:47

标签: python django

我有注册人的会员表。我想在登录的个人资料页面中显示特定人员的成员表值。我使用 Member.objects.get() 数据显示在登录人员的个人资料页面中。但是如果其他人注册了它,则显示个人资料页面中的错误,例如。

这是我的错误

    MultipleObjectsReturned at /web/profile/
    get() returned more than one Member -- it returned 2!

这是我的views.py

    def profile(request):
        member = Member.objects.get()
        print(member.Email)
        return render(request, 'web/profile.html',{'member':member} )

这是我的会员model.py

class Member(models.Model):
  fullname=models.CharField(max_length=30)
  companyname=models.CharField(max_length=30)
  Email=models.CharField(max_length=50)
   password=models.CharField(max_length=12)
   contactno = models.CharField(max_length=30,default='anything')

1 个答案:

答案 0 :(得分:0)

get() 应该只返回一个对象,因此您需要对其进行过滤以使返回的对象唯一。

此外,为确保您的用户通过身份验证,请使用 @login_required

假设您的 Member 模型有一个带有 User 的 ForeignKeyField,并且您希望过滤 Member 以使其与当前登录的用户匹配:

from django.contrib.auth.decorators import login_required

@login_required
def profile(request):
    member = Member.objects.get(user=request.user)
    print(member.Email)
    return render(request, 'web/profile.html',{'member':member} )
相关问题