Django:在表格中显示模型值

时间:2018-06-09 21:39:00

标签: python html django url django-models

我是django的新手,需要一些帮助。我创建了一个模糊的网站。我的模型看起来如下;

from django.db import models

class InductiveSensors(models.Model):
   Part_No = models.CharField(max_length=250)
   Manufacturer = models.CharField(max_length=250)
   Sn = models.CharField(max_length=250)
   AssuredSn = models.CharField(max_length=250)


def __str__(self):
    return InductiveSensors.Manufacturer

有几页。一个给我一个数据库中所有项目的列表

{% extends "ESensFind/header.html" %}

{% block content %}
{% for InductiveSensors in object_list %}
<h5>{{ InductiveSensors.Manufacturer}}<a 
href="/Inductive_Search/{{InductiveSensors.id}}"> 
{{InductiveSensors.Part_No}}</a></h5>
{% endfor %}
{% endblock %}

点击{{InductiveSensors.Part_No}}链接后,它会打开另一页。我希望在表中显示此数据库条目,其中包含

的信息
   Part_No = models.CharField(max_length=250)
   Manufacturer = models.CharField(max_length=250)
   Sn = models.CharField(max_length=250)
   AssuredSn = models.CharField(max_length=250)

我的网址看起来像:

from django.conf.urls import url, include
from django.views.generic import ListView, DetailView
from Inductive_Search.models import InductiveSensors

urlpatterns = [  
url(r'^$',ListView.as_view(queryset=InductiveSensors.objects.all().order_by
("Manufacturer") #THIS PAGE IS THE LIST OF ALL DATABASE ENTRIES#
[:25],template_name="Inductive_Search/Inductive_Search.html")),
url(r'^(?P<pk>\d+)$', ListView.as_view(model= InductiveSensors, 
template_name = 'Inductive_Search/SensorInfo.html')) #THIS OPENS UP A NEW 
INDEX PAGE AFTER A PARTICULAR DATABASE ENTRY LINK IS CLICKED#

是与#34; SensorInfo.html&#34;?一起使用的第二个网址代码。 In&#34; SensorInfo.html&#34;我有这个代码,我认为它应该只显示标题中的制造商信息,但它什么都不显示。

{% extends "ESensFind/header.html" %}

{% block content %}
<h5>{{ InductiveSensors.Manufacturer}}</h5>

{% endblock %}

基本上我要做的是让SensorInfo.html显示我的模型中的值,这些值与我网页上的表中的特定索引相关。任何帮助,将不胜感激。感谢

2 个答案:

答案 0 :(得分:0)

“正确”的解决方案是编写详细信息视图(通过派生自DetailView),在模板中,您可以使用get_object()或.object访问基础对象。

如果要快速和脏地实现它,则必须访问pk参数并使用它获取模型实例,并将其作为上下文数据的一部分传递。

我建议您深入学习文档,django教程是开始的好地方(https://docs.djangoproject.com/en/2.0/intro/tutorial01/#writing-your-first-django-app-part-1)或在此处阅读基于课程的视图https://docs.djangoproject.com/en/2.0/topics/class-based-views/generic-display/

答案 1 :(得分:0)

对于urls.py来说,解决方案会如下所示吗?

from django.conf.urls import url, include
from django.views.generic import ListView, DetailView
from Inductive_Search.models import InductiveSensors

urlpatterns = [
   url(r'^$', 
ListView.as_view(queryset=InductiveSensors.objects.all().order_by
("Manufacturer") 
[:25],template_name="Inductive_Search/Inductive_Search.html")),
url(r'^(?P<pk>\d+)$', DetailView.as_view(model= InductiveSensors, 
template_name = 'Inductive_Search/SensorInfo.html'))
]

并在模板中

{% extends "ESensFind/header.html" %}

{% block content %}

    <h5>{{ get_object() }}</h5>

{% endblock %}