gpt4 book ai didi

Django 查询设置为从数据库中获取数据?

转载 作者:行者123 更新时间:2023-12-04 01:43:45 29 4
gpt4 key购买 nike

我创建了一个如下所示的模型:

from __future__ import unicode_literals

from django.db import models


class TypesOfVehicle(models.Model):

type = models.CharField(max_length=50)
def __unicode__(self):
return self.type


class vehicleDetails (models.Model):

T = models.ForeignKey(TypesOfVehicle)
NoOfWhl = models.PositiveIntegerField()
year = models.CharField(max_length=4)
ModelName = models.CharField(max_length=254)
VID = models.CharField(max_length=254, verbose_name="VID")

为了查看上面的数据我写了一个view如下:

from django.shortcuts import render
from .models import CountryDiseases, Country


def VData(request):
Count = vehicleDetails.objects.all()
return render(request, 'DATAPLO/MAP.html', {'Count': Count })

为了渲染 View ,我写下了一个像这样的简单模板

map .html

{% for c  in Count %}
{{c.NoOfWhl }} {{ c.year }} {{ c.ModelName }}<br/>
{% endfor %}

我的问题是我是 Django 的新手,经过几次不成功的尝试后,我无法写下一个可以呈现我的数据的方法,如下所示。

我如何修改 View 和模板部分以便它可以返回类似这样的内容

示例输入数据:

NoOfwhl year modelName VID Type 

4 2014 xyz111 786 SUV
2 2012 445444 789 bk
4 2014 655656 676 car
3 2013 565656 459 tax
4 2010 565656 567 SUV
3 2019 345353 359 tax
3 2013 234224 789 tax
4 2014 L34535 345 SUV
3 2011 456464 789 tax
3 2012 456465 799 tax
4 2033 345353 09u car
2 2014 354354 454 scl

现在假设如果有人点击“SUV”,它应该返回与“SUV”相关的所有信息,如下所示:

urls 键为“SUV”:

NoOfwhl year modelName VID 

4 2014 xyz111 786
4 2010 565656 567
4 2014 L34535 345

最佳答案

我试图理解你的问题,我将用我的 Django 网络应用程序中的一个例子来回答。

在我的例子中,但你的例子很相似,我有一个模板,它将我数据库中的所有公司呈现在一个表中。我显示所有公司,如果我单击一个单元格,我可以根据该公司查询包含所有信息的新模板。这与您要求的问题完全相同。

第一步:urls.py文件

在此文件中,根据您的问题,我有 3 个网址:

from django.conf.urls import url
from . import views

urlpatterns = [
url(r'^Formulaire/Societes$', views.Identity_Societe_Form, name = "SocieteFormulaire"),
url(r'^Resume/Societes$', views.Identity_Societe_Resume, name = "SocieteResume"),
url(r'^Contrat/Societe/(?P<id>\d+)/$', views.Identity_Contrat, name="Contrat"),
]
  • SocieteFormulaire 允许填写表格并将对象保存在我的数据库中
  • SocieteResume 允许在包含多个信息的表格中显示所有公司。在此表中,我可以单击内部以显示公司模板。
  • Contrat 允许显示所选公司功能的模板

第二步:带Resume功能的view.py文件

在我看来,我有一个函数可以在 HTML 模板中显示所有公司。

@login_required
def Identity_Societe_Resume(request) :

societe = Societe.objects.all()
contrat = SocieteContrat.objects.all()

paginator = Paginator(societe, 10)
page = request.GET.get('page', 1)

try:
societe = paginator.page(page)
except PageNotAnInteger:
societe = paginator.page(1)
except EmptyPage:
societe = paginator.page(paginator.num_pages)

paginator = Paginator(contrat, 10)
page = request.GET.get('page', 1)

try:
contrat = paginator.page(page)
except PageNotAnInteger:
contrat = paginator.page(1)
except EmptyPage:
contrat = paginator.page(paginator.num_pages)

context={
"societe" : societe,
"PageNotAnInteger":PageNotAnInteger,
"contrat" : contrat,
}

return render(request, 'Identity_Societe_Resume.html', context)

我在这个名为 Identity_Societe_Resume.html

的 html 模板中显示在我的数据库中注册的所有公司

这个模板的核心是这样的:

<h4><b> <span class="glyphicon glyphicon-user"></span></span> Récapitulatif des Sociétés ayant souscrit à un contrat de services : </b></h4>
<table style="width:125%">
<tbody>
<tr>
<th>ID</th>
<th>Nom</th>
<th>État</th>
<th>SIRET</th>
<th>SIREN</th>
<th>NAF-APE</th>
<th>Adresse</th>
<th>Ville</th>
<th>Pays</th>
</tr>
{% for item in societe %}
<tr>
<td><a href="http://localhost:8000/Identity/Contrat/Societe/{{item.id}}"> Ici </a></td>
<td>{{ item.Nom}}</td>
<td>{{ item.Etat}}</td>
<td>{{ item.SIRET }}</td>
<td>{{ item.SIREN }}</td>
<td>{{ item.NAF_APE }}</td>
<td>{{ item.Adresse }}</td>
<td>{{ item.Ville}}</td>
<td>{{ item.Pays.name }}</td>
</tr>
{% endfor %}
</tbody>
</table>

如您所见,我的表格显示了一些信息并显示了公司ID。但是根据前面显示的 urls.py 文件,此信息是指向公司模板的链接。

第三步:包含公司信息的views.py文件

在这一步中,我根据好的公司显示信息。在我的网址中,我有:http://localhost:8000/Identity.Contrat/Societe/1

Number 1 显示关于company 1

的信息

那么我的观点是:

@login_required
def Identity_Contrat(request, id) :

societe = get_object_or_404(Societe, pk=id)
contrat = get_object_or_404(SocieteContrat, pk=id)
#etc ...

拥有 (request, id) 非常重要,在每个查询集中我都提到了 company ID

最后,在我的模板中我有:

<h4><b> Récapitulatif concernant la société : {{societe.Nom}}</b></h4>
<table style="width:125%">
<tbody>
<tr>
<th>ID</th>
<th>Nom</th>
<th>État</th>
<th>SIRET</th>
<th>SIREN</th>
<th>NAF-APE</th>
<th>Adresse</th>
<th>Ville</th>
<th>Pays</th>
</tr>
<tr>
<td>{{societe.id}}</td>
<td>{{ societe.Nom}}</td>
<td>{{ societe.Etat}}</td>
<td>{{ societe.SIRET }}</td>
<td>{{ societe.SIREN }}</td>
<td>{{ societe.NAF_APE }}</td>
<td>{{ societe.Adresse }}</td>
<td>{{ societe.Ville}}</td>
<td>{{ societe.Pays.name }}</td>
</tr>
</tbody>
</table>

希望这个例子对你有帮助,我为我的英语很烂而道歉..

关于Django 查询设置为从数据库中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45074156/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com