我有注册人的会员表。我想在登录的个人资料页面中显示特定人员的成员表值。我使用 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')
答案 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} )