如何从Django中的模板获取用户数据?
这可能非常简单,但我在这个具体案例中什么也没发现。我把事情搞得一团糟,弄不清是什么在起作用,这也于事无补 我希望我的模板显示用户帐户余额 models.py:如何从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)
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>