我正在尝试开发一个基于日期可视化内容的网页。它将用于我们的足球俱乐部的规划目的。每个星期六和星期日,网站都应该显示更衣室和将使用它的团队。
我是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)。我已经设法做到了,但我现在首先关注核心功能。
答案 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]