django视图根据数字或当前日期从db检索数据

时间:2014-06-01 13:26:18

标签: python database django views django-queryset

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

我是OOP和django的新手,如果你能帮助我,我将不胜感激。

我在models.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部分注册模型,我可以在数据库中添加条目。

from django.contrib import admin

from.models import KleedkamerIndeling

class KleedkamerIndelingAdmin(admin.ModelAdmin):
    class Meta:
        model = KleedkamerIndeling

admin.site.register(KleedkamerIndeling,KleedkamerIndelingAdmin)

现在是时候创建我的观点了。我想从数据库中检索数据,具体取决于存储在'indelings_datum'中的日期。但是,因为这是一个日期,所以我决定从基于'speel_ronde'的数据开始检索并从那里前进。

我目前通过结合所有django书籍和我所做的教程中的内容,提出了以下观点。忽略current_time视图,这是我单独尝试(工作)的东西。

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)。我已经设法做到了,但我现在首先关注核心功能。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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