为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Django中将变量从视图传递到基.html?

如何在Django中将变量从视图传递到基.html?

尚方宝剑之说 2022-08-02 15:43:47
我想在项目的导航栏上显示用户的名字。此导航栏位于文件上。base.html在我的应用程序中,我创建了一个执行此操作的变量views.pydef base(request):    user = request.user    u = User.objects.get(username=user)    us = u.clients.first_name    context = {'u': u, 'us': us}    return render(request, "backend/base.html", context)我可以让它在任何其他.html文件上工作,但不能在基础.html上工作,看起来像这样<span class="mb-0 text-sm  font-weight-bold">{{us}}</span>这是我的模型class Clients(models.Model):    user = models.OneToOneField(User, on_delete=models.CASCADE)    first_name = models.CharField(max_length=30, verbose_name="Primeiro Nome")    last_name = models.CharField(max_length=30, verbose_name="Apelido")    address = models.CharField(max_length=200, verbose_name="Morada")    nif = models.CharField(max_length=9, verbose_name="NIF", validators=[RegexValidator(r'^\d{1,10}$')], primary_key=True)    mobile = models.CharField(max_length=9, verbose_name="Telemóvel", validators=[RegexValidator(r'^\d{1,10}$')])    email = models.CharField(max_length=200, null=True, verbose_name="Email")    def __str__(self):        return "%s %s" % (self.first_name, self.last_name)    class Meta:        verbose_name_plural = "Clientes"
查看完整描述

2 回答

?
Helenr

TA贡献1780条经验 获得超4个赞

我正在回答我自己的问题。


我能够通过使用以下代码创建一个来解决此问题context_processor.py


from .models import Clients, Hotels, Trip, Flight

from django.contrib.auth.models import User


def add_variable_to_context(request):  

    user = request.user

    u = User.objects.get(username=user)

    us = u.clients.first_name

    uv = u.clients.avatar

    return {

        'u': u,

        'us': us,

        'uv': uv

    }


查看完整回答
反对 回复 2022-08-02
?
ibeautiful

TA贡献1993条经验 获得超5个赞

在 views.py 尝试使用render_to_string函数。不要忘记在配置文件中配置静态文件设置。


from django.template.loader import render_to_string


context = {'u': u, 'us': us}

render_to_string('html_name.html', context)


查看完整回答
反对 回复 2022-08-02
  • 2 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信