[英]__str__ not showing String
我正在編寫一個 Django 應用程序,登錄后我希望它顯示用戶的名字和姓氏。 這是我的 model -
class Admins(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
user.is_admin = True
first_name = models.CharField(max_length=256)
last_name = models.CharField(max_length=256)
def __str__(self):
return "{} {}".format(self.first_name, self.last_name)
當我在views.py中調用str function時,它返回-“function Admins.str at 0x00000135A3083708”
這是我的看法-
def AdminLandingPage(request):
name = Admins.__str__
print(name) #using this part to display above mentioned error
return render(request,'form1/adminlanding.html',{'USTYPE':"ADMIN","FN":name})
當我檢查我的 HTML 文件時,它顯示為空白。 它應該顯示名字和姓氏。 相反,字符串(名稱)和上下文都無法顯示這一點。
這是我的 HTML 文件 -
<body>
<p>
{{FN}}
</p>
首先,為了獲得 function 的結果,您需要運行__str__()
(您缺少()
)。
第二:
目前,您的name
變量只是Admins
-Model 定義,而不是實例。
為了獲取當前用戶名,您需要為其獲取 model 實例,例如:
def AdminLandingPage(request):
user = request.user
admin = user.admins # get your Admins-instance with reverse-relation from User-object
name = str(admin)
print(name) # will print aus the result of Admins.__str__() for the given instance
return render(request, 'form1/adminlanding.html', {'USTYPE': 'ADMIN', 'FN': name})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.