[PYTHON] Affichez la table des équipes Django! Prend en charge la fermeture de 20 jours

J'ai créé un affichage de décalage du 1er à la fin du mois.

J'ai été pris de différentes manières et cela n'a pas fonctionné du tout ...: froncer les sourcils2:

Tout d'abord, j'ai essayé d'afficher le tableau des horaires pour ce mois comme page d'accueil du planning, mais je ne peux pas l'appeler correctement avec la redirection ... (cela n'a pas encore été résolu)

Et j'essaie actuellement d'organiser les dates et les jours en haut du tableau de planification.

schedule/views.py


from django.shortcuts import render
from shisetsu.models import *
from accounts.models import *
from .models import *
from django.shortcuts import redirect
import calendar
import datetime
from datetime import timedelta
from datetime import datetime as dt

# Create your views here.

def homeschedule(request):
    from datetime import datetime
    now = datetime.now()
    return redirect('schedule/monthschedule/%s/%s/' % (now.year,now.month,))  #Rediriger automatiquement vers l'écran d'équipe de ce mois

def monthschedulefunc(request,year_num,month_num):
    year, month = int(year_num), int(month_num)
    object_list = Schedule.objects.filter(date__year= year, date__month= month).order_by('date')
    #Obtenez le nombre de jours dans la plage de travail
    startdate = datetime.date(year,month-1,21)
    enddate = datetime.date(year,month,20)
    kaisu = enddate - startdate
    kaisu = int(kaisu.days)
    
    #Faites une liste de dates et de jours
    hiduke = str(year) + "-" + str(month) + "-" + str(20)
    date_format = "%Y-%m-%d"
    hiduke = dt.strptime(hiduke, date_format)
    calender_object = [hiduke]
    for i in range(kaisu):
        hiduke = hiduke + timedelta(days=1)
        calender_object.append(hiduke)


image.png

Ça fait du 20 au 20 (rires) J'essaie de le réparer pour que le jour puisse être affiché, mais cela fait environ 2 heures ...

schedule/views.py


    user_list = User.objects.all()
    context = {
        'object_list': Schedule.objects.all(),
        'staff_list' : User.objects.all(),
    }
    return render(request,'schedule/month.html', {
    'object_list': object_list,
    'user_list': user_list,
    'calender_object': calender_object,
    'weekdays':['Mois','Feu','eau','bois','Argent','sol','journée',],
    }, )

Je veux passer le jour en semaine et l'extraire de la valeur du jour du côté html, mais je ne sais pas ... Et cette situation ...

image.png

html:templasts/schedule.month.html


{% extends 'schedule/base.html' %}
{% block header %}
{% endblock header %}

{% block content %}
<table class="table table-striped table-bordered">
<thead>
    <tr align="center" class="info">    <!--Date-->
        <th rowspan="2"></th>
        {% for item in calender_object %}
                <th class="day_{{ item.date }}">{{ item.date | date:"d" }}</th>
        {% endfor %}
    <tr align="center" class="info">   <!--journée-->
        {% for item in calender_object %}
            <th class="day_{{ item.date }}">{{ item.date | date:"w" }}</th>
        {% endfor %}
    </tr>
</thead>

À la fin, je peux obtenir le jour par numéro, mais je ne sais pas comment prendre la valeur de ce nombre à partir de weekdyas et l'afficher. Ici, j'ai décidé de changer et de créer un objet pour la journée et de le remettre

schedule/views.py



from django.shortcuts import render
from shisetsu.models import *
from accounts.models import *
from .models import *
from django.shortcuts import redirect
import calendar
import datetime
from datetime import timedelta
from datetime import datetime as dt

# Create your views here.

def homeschedule(request):
    from datetime import datetime
    now = datetime.now()
    return redirect('schedule/monthschedule/%s/%s/' % (now.year,now.month,))  #Rediriger automatiquement vers l'écran d'équipe de ce mois

def monthschedulefunc(request,year_num,month_num):
    year, month = int(year_num), int(month_num)
    object_list = Schedule.objects.filter(date__year= year, date__month= month).order_by('date')
    #Obtenez le nombre de jours dans la plage de travail
    startdate = datetime.date(year,month-1,21)
    enddate = datetime.date(year,month,20)
    kaisu = enddate - startdate
    kaisu = int(kaisu.days)
    
    #Faites une liste de dates et de jours
    hiduke = str(year) + "-" + str(month) + "-" + str(20)
    date_format = "%Y-%m-%d"
    hiduke = dt.strptime(hiduke, date_format)
    weekdays = ["Mois","Feu","eau","bois","Argent","sol","journée"]
    calender_object = []
    youbi_object = []
    for i in range(kaisu):
        hiduke = hiduke + timedelta(days=1)    
        calender_object.append(hiduke)
        youbi = weekdays[hiduke.weekday()] 
        youbi_object.append(youbi)

image.png

J'ai pu faire ce que je voulais faire pour le moment, donc ça va! Il est préférable d'écrire le code proprement, mais je pense qu'il est important de pouvoir faire ce que vous voulez faire en premier (excuse (rires))

Je voudrais créer le contenu du calendrier, mais cela me semble assez difficile. Tout d'abord, je voudrais pouvoir afficher le travail de chaque membre du personnel.

J'ai commencé à afficher le contenu, mais cela ne fonctionne plus. Le développement est vraiment difficile (rires)

S'il y a un maître, il semble que les progrès seront plus rapides si vous pouvez m'apprendre par étapes.

Ce qui ne va pas, c'est que je voulais traiter chaque membre du personnel (utilisateur), j'ai donc retiré l'utilisateur, sorti les objets contenant les informations de planification dans l'ordre et traité si le nom d'utilisateur était le même. Par tous les moyens

schedule.html


{% if staff.username == item.user %}
En traitement
{% endif %}

Cette partie ne juge pas bien ...

J'ai aussi vérifié cela, mais je ne sais pas donc je vais réfléchir à une méthode différente

Je me demande s'il pourrait être combiné et affiché en interne, mais je ne suis toujours pas sûr. Ce que je ne comprends pas vraiment, c'est que la table User est implémentée par le standard de Django, donc je ne comprends pas si elle peut être gérée normalement ...

Comment puis-je réaliser ce que je veux faire ... Puisqu'il ne s'agit pas d'une instruction SQL dans Django, cela peut également être la cause d'une incompréhension

Je comprends vraiment qu'il y a beaucoup de gens qui peuvent faire de la programmation ... Même si j'en résous un, je trébuche aussitôt et il y a beaucoup de manque de considération (rires)

Mais faisons de notre mieux pour être impressionné lorsque nous déménageons

Recommended Posts

Affichez la table des équipes Django! Prend en charge la fermeture de 20 jours
Table de décalage Django Python
Je veux faire défiler la table de décalage Django, mais ...
Table de décalage Django Afficher uniquement les installations auxquelles vous appartenez
Django ~ Affichons-le sur le navigateur ~
Ajout d'une fonction pour enregistrer les décalages souhaités dans la table des décalages Django
Fonction de création de données de décalage de table Django terminée
Ajouter une fonctionnalité pour modifier les informations de quart de jour Django
Afficher le 邊
création de table django
[Jjango] Afficher le message d'erreur spécifié par lever ValidationError
[Django] Perform Truncate Table (supprimer toutes les données de la table)