Django:数据库过滤器输出显示<queryset [<model:=“” model =“” object =“”(value)=“”>]>

时间:2019-04-24 07:38:52

标签: django django-templates django-views

我是django的新手,我正尝试使用多个过滤器从数据库导入数据。

  

views.py

from django.shortcuts import render
from django.http import HttpResponse
from .models import NodesdataArchive    
# Create your views here.
def home_view(request, *args, **kwargs):
    data = NodesdataArchive.objects.filter(status=1, vendor='F5', location='NA')    
    host = {    
        "dns" : data 
    }
    return render (request, "home.html", {'posts': host})

使用多个查询后,我仅选择要显示的对象“ dns”。当我检查“主机”变量的值,它显示正确的输出。当我将其加载到html模板中时,其显示的完整输出显示在“主机”变量中,而不是单独的确切值。

当前输出:

  

“ QuerySet [NodesdataArchive:NodesdataArchive对象(奥斯汀)>]>”

期望输出显示在html模板中:

  

奥斯汀

请帮助,谢谢!!!!

models.py

class NodesdataArchive(models.Model): ip_address = models.CharField(db_column='IP_Address', max_length=50, blank=True, null=True) # Field name made lowercase. dns = models.CharField(db_column='DNS', max_length=255, blank=True, primary_key=True) # Field name made lowercase. vendor = models.CharField(db_column='Vendor', max_length=255, blank=True, null=True) # Field name made lowercase. location = models.CharField(db_column='Location', max_length=255, blank=True, null=True) # Field name made lowercase. status = models.CharField(db_column='Status', max_length=20, blank=True, null=True) # Field name made lowercase.

1 个答案:

答案 0 :(得分:0)

大概是在模板中

{{ dns }}

尝试

{% for item in dns %}
   {{ item }}
{% endfor %}

说明: 您正在下载查询集而不是特定项目,因为您正在使用filter()。如果您知道只有一条记录符合过滤条件,请使用NodesdataArchive.objects.get(status=1, vendor='F5', location='NA'),然后{{dns​​}}将在模板中工作。