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

Django - 在模板中打印变量

Django - 在模板中打印变量

哔哔one 2022-10-18 17:06:24
我创建了一个名为“jobs”的应用程序,基本上我想从管理控制台创建新的“jobs”并能够将其发布在 jobs.html 页面上。我创建了模型和视图,但我认为视图有问题,不允许我在 html 模板上打印“作业”。你能告诉我错误是否在views.py中吗?工作/模型.pyfrom django.db import models# Create your models here.class post_job(models.Model):    posizione= models.TextField(max_length=20)    descrizione= models.TextField(max_length=20)    requisiti= models.TextField(max_length=20)    def __str__(self):        """String for representing the MyModelName object (in Admin site etc.)."""        return self.posizione工作/admin.pyfrom django.contrib import adminfrom .models import post_job# Register your models here.admin.site.register(post_job)工作/views.pyfrom django.shortcuts import renderfrom .models import post_job# Create your views here.def viz_job(request):    posizione = post_job.posizione    print(posizione)    return render(request,'jobs/jobs.html',{'posizione':posizione})
查看完整描述

2 回答

?
慕娘9325324

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

正确答案:


在您看来:


from django.shortcuts import render

from .models import PostJob # proper naming


def viz_job(request):

    jobs = PostJob.objects.all()


    return render(request,'jobs/jobs.html',{'jobs': jobs})

在您的模板中:


<ul>

{% for job in jobs %}

   <li>

      <h3>{{ job.posizione }}</h3>

      <div>

          {{ job.descrizione }}

     </div>

   </li>

{% endfor %}

</ul>

请注意,所有这些都已记录在案。


注意:如果您只对这两个字段感兴趣并且不需要任何模型的方法、相关对象或其他任何东西,您可以通过使用查询集来优化查询,该查询values集将产生带有所选字段而不是完整的字典模型实例:


    jobs = PostJob.objects.values("posizione", "descrizione")

其他一切都保持不变。


查看完整回答
反对 回复 2022-10-18
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

您必须知道要为模板返回什么,例如在 views.py 中:


from django.shortcuts import render

from .models import post_job

# Create your views here.


def viz_job(request):

    jobs = []

    descriziones = []

    posizione = Job.objects.all()

    for pos in posizione:

        jobs.append(pos.posizione)

        descriziones.append(pos.descrizione)

    context = {

        'posizione': jobs,

        'descrizione': descriziones

    }

    return render(request, 'jobs/jobs.html',

                  context=context)  # this will return context dictonary to the template


您可以过滤并从数据库中获取特定数据


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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号