簡體   English   中英

__str__ 不顯示字符串

[英]__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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM