【问题标题】:query the data and render to display查询数据并渲染显示
【发布时间】:2013-06-10 10:52:58
【问题描述】:

models.py

class ReportPerson(models.Model):
    report = models.ForeignKey(Report)
    name = models.CharField('Name', max_length=100)

    def __unicode__(self):
        return self.name 

views.py

def report(request)
    '''''''
     reportperson = ReportPerson.objects.filter(report=report_id)[:2]
   '''''''
return render(request,'report.html',{ 'reportperson':reportperson,})

模板

{{ reportperson }}  

我的问题是查询的输出应该是这样的“约翰”,但我得到的输出是[<ReportPerson: John>],模型名称作为前缀。

我想以这种格式显示 db 中的值 john,paul,william.But 我得到的输出是这个 []

谢谢

【问题讨论】:

    标签: django django-models django-forms django-templates


    【解决方案1】:

    在您的 report.html 模板中,执行以下操作:

    {% for i in reportperson %}
      {{ i }}<br />
    {% endfor %}
    

    您正在返回一个列表,如果您只是将其显示为{{ reportperson }},您将获得该列表的字符串版本。

    【讨论】:

    • filter() 给你一个 QuerySet,他的 [:2] 评估 QuerySet 并将其放入一个列表中。
    • {{ i }} 可能会打印 person 对象。如果要打印名称,请使用 {{ i.name }}
    • {{ i }} 将打印 __unicode__() 为该对象返回的任何内容,如果该方法未定义;然后它将返回一些文本表示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 2018-06-09
    相关资源
    最近更新 更多