如何从Django中的模板获取用户数据?

如何从Django中的模板获取用户数据?,django,Django,这可能非常简单,但我在这个具体案例中什么也没发现。我把事情搞得一团糟,弄不清是什么在起作用,这也于事无补 我希望我的模板显示用户帐户余额 models.py: from django.contrib.auth.models import User from django.db import models class Uzytkownik(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE)

这可能非常简单,但我在这个具体案例中什么也没发现。我把事情搞得一团糟,弄不清是什么在起作用,这也于事无补

我希望我的模板显示用户帐户余额

models.py:

from django.contrib.auth.models import User
from django.db import models

class Uzytkownik(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    saldo = models.DecimalField(max_digits=6, decimal_places=2, blank=False, null=False)
    telefon = models.CharField(max_length=12, blank=True)
    adres = models.TextField(max_length=255, blank=True)

    def get_balance(self, request):
        current_user = request.user
        return current_user.saldo
view.py:

from django.shortcuts import render

from .models import Uzytkownik, User

def index(request):
    context = {'saldo': Uzytkownik.get_balance}
    return render(request, 'bpanelapp/index.html', context)

在我的模板中,我使用
{{context}
引用它。然而,
是空的,即使我当前登录帐户的
余额
字段包含数据。

你需要在模板中使用
{{saldo}
,而不是
{context}}
(它不存在)。此外,您需要将
请求
传递到
获取余额
方法中,因为这是一个必需参数。

首先,您忘记调用
获取余额
函数:

def index(request):
    context = {'saldo': Uzytkownik.get_balance(request)}
    return render(request, 'bpanelapp/index.html', context)
您不能参考
上下文
。上下文变量不存在,您向模板传递了一个值(以及一些隐式传递的值,如
request
,以及一些通过上下文处理器传递的值)

因此,您可以通过以下方式呈现此内容:

<h2>{{ saldo }}</h2>

{{saldo}}
谢谢,它很管用。它实际上是
{{saldo}}
在某一点上,但我尝试了太多不同的解决方案,我只是迷路了。
<h2>{{ saldo }}</h2>