Django, как отображать данные за недели - PullRequest
0 голосов
/ 13 декабря 2018

Привет, спасибо, что помогли мне

Я делаю некоторый просмотр в Google и переполнение стека, но документация django и python Я с трудом могу понять, как они заставляют код работать

Я просто могуНе могу найти способ отображать данные за неделю (таблица и диаграмма) с помощью двух переключателей для переключения разных недель 53 недель в году

Я пыталсяиспользование недели в тегах шаблонов Django;https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#date но вместо этого я получаю пустое значение;Вот пример, который я сделал {{ value|date:"W" }}

Есть ли простой способ сделать это?Я не хочу использовать недельный архив: 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()}

Это URL-адреса моих приложений

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())

1 Ответ

0 голосов
/ 13 декабря 2018

У вас нет значения в вашем контексте.Контекст только «танк».Таким образом, чтобы получить дату и время, вы можете использовать {{ tank.datetime|date:"W" }}

. Для переключения после нажатия на кнопку вы можете написать простой фрагмент javascript, который изменяет внутренний html определенной части вашей DOM на {{ tank.datetime|date:"W" }}, {{ tank.datetime|date:"M" }} и т. Д. После нажатия кнопки

...