【问题标题】:django how to display a weeks datadjango如何显示一周的数据
【发布时间】:2019-05-14 09:34:24
【问题描述】:

你好,谢谢你帮助我

我在 google 上进行一些浏览和堆栈溢出,但文档 django 和 python 我几乎无法理解,它们如何使代码运行

我只是想不出一种方法来显示周数据(表格和图表) 两个切换按钮用于切换一年中 53 周的不同周

我曾尝试在 Django 模板标签中使用星期; https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#date 但我得到的是空值;这里的例子我做了{{ value|date:"W" }}

有没有简单的方法来做到这一点?我不想使用weekarchiveview: https://docs.djangoproject.com/en/2.1/ref/class-based-views/generic-date-based/#weekarchiveview

因为我需要在同一页面上切换年、月和周。

下面是我的代码

这是我的视图代码

from django.shortcuts import render
from django.views.generic import ListView, DetailView ,TemplateView
from zigview.models import tank_system

from django.utils import timezone
from datetime import date, timedelta    
class EC(ListView):
        model = tank_system
        template_name = 'FrounterWeb/extends/EC.html'
        ordering = ['-datetime']  # sort dates in descending order

        def get_context_data(self, **kwargs):
            return {'tank': self.get_queryset()}

这是我的应用程序网址代码

from django.urls import path
from . import views #function views
from django.views.generic.base import TemplateView
from django.contrib.auth.decorators import login_required, permission_required

urlpatterns = [

    path('',login_required(views.index.as_view()), name='index'), # views to call our index
    path(r'', TemplateView.as_view(template_name='index.html'), name = 'myapp'), # tell django the which path to our main page
    path(r'liveSterm/', login_required(views.Strem), name='Livesterm'), #call live strem page
    path(r'EC-data/', login_required(views.EC.as_view()), name='EC'),
    path(r'ph-data/', login_required(views.ph.as_view()), name='ph'),
    path(r'Water-Temptures/', login_required(views.WT.as_view()), name='WT'),
    path(r'Room-Temptures/', login_required(views.RT.as_view()), name= 'RT'),
    path(r'Water-Flow-IN/', login_required(views.WaterFlowIN.as_view()), name= 'WFI'),
    path(r'Water-Flow-OUT/', login_required(views.WaterFlowOUT.as_view()), name= 'WFO'),
    ]

这是我的模型代码

from django.db import models
from django.utils import timezone
from decimal import Decimal
# having errors KeyError: "'__name__' not in globals"

class tank_system(models.Model):

    PH = models.DecimalField(max_digits=3, decimal_places=1)
    EC = models.DecimalField(max_digits=3, decimal_places=1)
    Winlet = models.DecimalField(max_digits=3, decimal_places=1)
    Woutlet = models.DecimalField(max_digits=3, decimal_places=1)
    WaterLevel = models.IntegerField(default=500)
    TempWater = models.IntegerField(default=25)
    TempRoom = models.IntegerField(default=25)
    tanks = models.IntegerField(default=1)
    datetime = models.DateTimeField(default=timezone.now())

【问题讨论】:

    标签: django datetime django-views django-queryset django-class-based-views


    【解决方案1】:

    在你的上下文中你没有“价值”。上下文只是“坦克”。所以要获取日期时间,您可以使用{{ tank.datetime|date:"W" }}

    要在单击按钮后切换,您可以编写一段简单的 javascript,在单击按钮后将 DOM 的某个部分的内部 html 更改为 {{ tank.datetime|date:"W" }}{{ tank.datetime|date:"M" }}

    【讨论】:

    • 亲爱的罗伊,我试过 {{ tank_system.datetime|date:"W" }},如果我愿意使用,我的所有列的值都是 50,而不是 7 天{{ tank.datetime|date:"W" }} 我改为打电话给我的名单 :(。但感谢您的帮助;谢谢
    • 由于日期时间只有 1 个值,因此您没有得到 7 个值, date:"W" 确实为您提供了周数,如果您想获得该周的日期,可能会有库,或者您可以使用一些日期逻辑自己实现它。
    • 对不起,罗伊;你是什​​么意思,“日期时间只有1个值”没有“周”列,或者我让它读取行?不,我不是在寻找一天,而是一周。不过谢谢你的帮助
    • 一旦你给一个坦克日期时间一个值,你会给它 1 个日期时间(例如 2018 年 12 月 14 日 09:23),我不确定你想如何从那个 1 中获得多个星期价值
    • 嗯,在阅读了 django 的纪录片 10 次之后,我想我开始明白你罗伊的意思了。谢谢
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 2014-07-21
    • 1970-01-01
    • 2021-02-02
    • 2017-09-14
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    相关资源
    最近更新 更多