我正试图开发一个网页,将可视化的内容基于日期。它将用于规划我们的足球俱乐部。每周六和周日,网站应该展示更衣室和将使用它的球队。
我不熟悉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
我设法在网站的adm部分注册模型,我能够向数据库添加条目。
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'。但是,如果我通过admin访问数据库,那么我可以看到我放入的所有示例数据。
在此工作后,我想只检索属于特定数据的数据..
是的,我知道我需要把html(和css)在不同的方式。我已经做到了这一点,但我现在应该首先关注核心功能。
Model.objects.filter()
返回一个QuerySet。如果您确定过滤器只返回一个模型,则可以执行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]