【问题标题】:Django: Display model values in tableDjango:在表格中显示模型值
【发布时间】:2018-11-19 14:02:00
【问题描述】:

我是 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#

第二个 url 代码与“SensorInfo.html”一起使用是否正确?在“SensorInfo.html”中,我有这段代码,我认为它甚至应该在标题中显示制造商信息,但它什么也不显示。

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

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

{% endblock %}

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

【问题讨论】:

    标签: python html django url django-models


    【解决方案1】:

    “正确”的解决方案是编写详细视图(通过从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/

    【讨论】:

      【解决方案2】:

      那么 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 %}
      

      【讨论】:

      • 我基本上已经在 YouTube 上关注了这个人的教程:[link]youtube.com/watch?v=W66TcJ7i-Bk。我必须观看视频 10 并且一切正常,我的挫败感在他使用的视频中大约 7.00 分钟 {{post.title}}。在我的情况下,这将是 {{InductiveSensors.Manufacturer}},我不明白为什么在我加载我的网址时没有显示此信息。
      猜你喜欢
      • 2013-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-14
      • 1970-01-01
      • 2020-08-22
      • 2020-09-29
      • 1970-01-01
      相关资源
      最近更新 更多