Django模板对象未显示

Muh*_*hir 0 django django-templates django-views

所以我遇到了这个奇怪的事情。我无法在模板中传递数据,除非它在 ​​forloop 中。

例如..我几乎可以在 for 循环内打印一个变量,但在 forloop 之外的东西没有显示出来。

{{listings.make}} <<<< This isn't printing


{% for listing in listings %}
   <p>{{listing.make}}</p> <<<< This is printing
{% endfor%}
Run Code Online (Sandbox Code Playgroud)
def search(request):
    queryset_list = Vehicle.objects.all()

    context = {

        'listings': queryset_list
    }

    return render (request, 'mainapp/new_listing.html', context)

Run Code Online (Sandbox Code Playgroud)
class Vehicle(models.Model):
    year = models.CharField(max_length=4, choices=YEAR)
    make = models.CharField(max_length=50, default="")
    model = models.CharField(max_length=50, default="")
    version = models.CharField(max_length=50, default="")
    description = models.TextField(max_length=50, default="")

    def __str__(self):
        return self.make

Run Code Online (Sandbox Code Playgroud)

知道实际发生了什么。如您所见,我使用的是基于函数的视图。

谢谢

小智 5

那是因为listings是一个 queryset_list 而不是单个Vehicle;所以它没有make字段。

如果你想访问你的模型的领域,你应该有一个单独的对象。正如您提到的,实现这一目标的一种方法是遍历对象。获取单个对象(仅列表中的一个)的另一种方法是使用{{ listings.first.make }}.