我是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显示我的模型中的值,这些值与我网页上的表中的特定索引相关。任何帮助,将不胜感激。感谢
答案 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 %}