【问题标题】:django view to retrieve data from db based on number or current datedjango 视图根据数字或当前日期从数据库中检索数据
【发布时间】:2014-06-01 13:26:17
【问题描述】:

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

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

【问题讨论】:

    标签: python database django views django-queryset


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      查询集是一个列表。因此,您必须从该列表中获取第一个索引,例如:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-26
        • 1970-01-01
        • 2013-09-12
        • 2021-10-13
        • 2017-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多