Django视图根据数字或当前数据从数据库中检索数据

2024-10-01 13:35:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试开发一个网页,将可视化的内容基于日期。它将用于规划我们的足球俱乐部。每周六和周日,网站应该显示更衣室和将使用它的球队。在

我刚接触OOP和django,如果你能帮我的话,我会很感激的。在

我在年做了以下模型模型.py在

from django.db import models

class KleedkamerIndeling(models.Model):
    kleedkamer_1 = models.CharField(max_length=25, blank=True)
    kleedkamer_2 = models.CharField(max_length=25, blank=True)
    kleedkamer_3 = models.CharField(max_length=25, blank=True)
    kleedkamer_4 = models.CharField(max_length=25, blank=True)
    kleedkamer_5 = models.CharField(max_length=25, blank=True)
    kleedkamer_6 = models.CharField(max_length=25, blank=True) 
    kleedkamer_7 = models.CharField(max_length=25, blank=True) 
    kleedkamer_8 = models.CharField(max_length=25, blank=True)
    speel_ronde = models.CharField(max_length=2)
    timestamp = models.DateField(auto_now_add=True, auto_now=False)
    updated = models.DateField(auto_now_add=False, auto_now=True)
    indelings_datum = models.DateField()

    def __unicode__(self):
        return self.speel_ronde

我设法在网站的admim部分注册了这个模型,并且我能够将条目添加到数据库中。在

^{pr2}$

现在是时候创建我的视图了。我想根据存储到“索引数据”的日期从数据库中检索数据。但是,因为这是一个日期,我决定从检索基于“speel_ronde”的数据开始,然后从那里推进。在

目前,我结合了所有django书籍和教程中的内容,得出了以下观点。忽略当前的时间观,那只是我单独尝试过的(有效的)。在

from django.shortcuts import render
from django.http import HttpResponse
from django.views.generic.dates import TodayArchiveView
from models import KleedkamerIndeling
import datetime


def current_time(request):
    now = datetime.datetime.now()
    html = "<html><body>Het is nu %s</body></html>" % now
    return HttpResponse(html)

def vandaag(request):
    queryset = KleedkamerIndeling.objects.all().filter(speel_ronde=25)
    kleedkamer1 = queryset.kleedkamer_1
    html = "<html><body>Room 1 will be used by %s</body></html>" % kleedkamer1
    return HttpResponse(html)

当我访问指向视图的链接的url时出错。我说“QuerySet”对象没有“kleedkamer_1”属性。但是,如果我通过管理员访问数据库,那么我就可以看到我放入的所有示例数据。在

完成这项工作后,我只想检索属于特定数据的数据。。在

是的,我知道我需要把html(和css)放在不同的方式。我已经设法做到了,但是现在我首先要关注的是核心功能。在


Tags: 数据djangofromimporttruemodelshtmllength
2条回答

Model.objects.filter()返回查询集。如果您确定一个过滤器只返回一个模型,KleedkamerIndeling.objects.get(speel_ronde=25)。否则,QuerySet的行为类似于一个列表,这意味着您可以去掉第一个(kleedkamer1 = queryset[0].kleedkamer_1)。在

Queryset是一个列表。所以你必须从列表中取第一个索引,比如:

def vandaag(request):
    queryset = KleedkamerIndeling.objects.all().filter(speel_ronde=25)[0] 

相关问题 更多 >