[PYTHON] Créez un modèle pour votre planning Django

Nous allons créer une application pour créer une table de travail.

terminal


python3 manage.py startapp schedule

Ajoutez l'application à vos paramètres.

config/settings.py


INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'accounts.apps.AccountsConfig',
    'shisetsu',
    'colorfield',
    'schedule'
]

Nous allons créer une table dans l'application de planification créée.

Les équipes doivent être gérées de manière à ce que A soit de 9h00 à 18h00. Vous pourrez peut-être aussi l'avoir comme si vous étiez payé. Par conséquent, je vais essayer de l'avoir dans le champ de texte.

En ce qui concerne l'horaire, cela signifie que vous pouvez entrer plusieurs quarts de travail par jour et travailler dans plusieurs installations. Il n'est jamais arrivé d'entrer dans un quart de travail de 3 ou plus.

Sur cette base, je vais essayer de le faire avec le tableau suivant.

schedule/models.py


from django.db import models
from shisetsu.models import *
 from accounts.models import *

# Create your models here.

class Shift(models.Model):
    id = models.IntegerField(verbose_name='Identifiant d'équipe',primary_key=True)
    name = models.CharField(verbose_name='Nom de l'équipe', max_length=1)
    start_time = models.TimeField(verbose_name="Heure de début")
    end_time = models.TimeField(verbose_name="heure de fin")
    wrok_time = models.IntegerField(verbose_name='Heures d'ouverture')

    def __str__(self):
        return self.name

class Schedule(models.Model):
    id = models.IntegerField(verbose_name='ID de planification',primary_key=True)
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    date = models.DateField(verbose_name='Date')
    shift_id_1= models.ForeignKey(Shift, verbose_name='1 nom d'équipe', on_delete=models.CASCADE)
    shisetsu_id_1 = models.ForeignKey(Shisetsu, verbose_name='1 établissement', on_delete=models.CASCADE)
    shift_id_2 = models.ForeignKey(Shift, verbose_name='2 nom d'équipe', on_delete=models.CASCADE)
    shisetsu_id_2 = models.ForeignKey(Shisetsu, verbose_name='2 installations', on_delete=models.CASCADE)
    shift_id_3 = models.ForeignKey(Shift, verbose_name='3 nom d'équipe', on_delete=models.CASCADE)
    shisetsu_id_3 = models.ForeignKey(Shisetsu, verbose_name='3 installations', on_delete=models.CASCADE)
    shift_id_4 = models.ForeignKey(Shift, verbose_name='4 nom d'équipe', on_delete=models.CASCADE)
    shisetsu_id_4 = models.ForeignKey(Shisetsu, verbose_name='4 établissements', on_delete=models.CASCADE)

Je ne pourrais pas faire ça

2 à 3 heures pour vérifier cela C'est la migration.

schedule/models.py


from django.db import models
from shisetsu.models import *
from accounts.models import *

# Create your models here.

class Shift(models.Model):
    id = models.IntegerField(verbose_name='Identifiant d'équipe',primary_key=True)
    name = models.CharField(verbose_name='Nom de l'équipe', max_length=1)
    start_time = models.TimeField(verbose_name="Heure de début")
    end_time = models.TimeField(verbose_name="heure de fin")
    wrok_time = models.IntegerField(verbose_name='Heures d'ouverture')

    def __str__(self):
        return self.name
    
class Schedule(models.Model):
    id = models.IntegerField(verbose_name='ID de planification',primary_key=True)
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    date = models.DateField(verbose_name='Date')
    shift_name_1 = models.ForeignKey(Shift, verbose_name='1 nom d'équipe', related_name='shift_name1',on_delete=models.SET_NULL,null= True)
    shisetsu_name_1 = models.ForeignKey(Shisetsu, verbose_name='1 établissement', related_name='shisetsu_name1',on_delete=models.SET_NULL,null= True)
    shift_name_2 = models.ForeignKey(Shift, verbose_name='2 nom d'équipe', related_name='shift_name2',on_delete=models.SET_NULL,null= True)
    shisetsu_name_2 = models.ForeignKey(Shisetsu, verbose_name='2 installations', related_name='shisetsu_name2',on_delete=models.SET_NULL,null= True)
    shift_name_3 = models.ForeignKey(Shift, verbose_name='3 nom d'équipe', related_name='shift_name3',on_delete=models.SET_NULL,null= True)
    shisetsu_name_3 = models.ForeignKey(Shisetsu, verbose_name='3 installations', related_name='shisetsu_name3',on_delete=models.SET_NULL,null= True)
    shift_name_4 = models.ForeignKey(Shift, verbose_name='4 nom d'équipe', related_name='shift_name4',on_delete=models.SET_NULL,null= True)
    shisetsu_name_4 = models.ForeignKey(Shisetsu, verbose_name='4 établissements', related_name='shisetsu_name4',on_delete=models.SET_NULL,null= True)

Je l'ai finalement fini ... C'était long, et si vous voulez faire référence à la même table plus d'une fois dans une table, vous devez définir chaque nom_ évalué.

ID changé en incrémentation automatique lors de la saisie de données provisoires

schedule/models.py


from django.db import models
from shisetsu.models import *
from accounts.models import *

# Create your models here.

class Shift(models.Model):
    id = models.AutoField(verbose_name='Identifiant d'équipe',primary_key=True)
    name = models.CharField(verbose_name='Nom de l'équipe', max_length=1)
    start_time = models.TimeField(verbose_name="Heure de début")
    end_time = models.TimeField(verbose_name="heure de fin")
    wrok_time = models.IntegerField(verbose_name='Heures d'ouverture')

    def __str__(self):
        return self.name
    
class Schedule(models.Model):
    id = models.AutoField(verbose_name='ID de planification',primary_key=True)
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    date = models.DateField(verbose_name='Date')
    shift_name_1 = models.ForeignKey(Shift, verbose_name='1 nom d'équipe', related_name='shift_name1',on_delete=models.SET_NULL,null= True)
    shisetsu_name_1 = models.ForeignKey(Shisetsu, verbose_name='1 établissement', related_name='shisetsu_name1',on_delete=models.SET_NULL,null= True)
    shift_name_2 = models.ForeignKey(Shift, verbose_name='2 nom d'équipe', related_name='shift_name2',on_delete=models.SET_NULL,null= True)
    shisetsu_name_2 = models.ForeignKey(Shisetsu, verbose_name='2 installations', related_name='shisetsu_name2',on_delete=models.SET_NULL,null= True)
    shift_name_3 = models.ForeignKey(Shift, verbose_name='3 nom d'équipe', related_name='shift_name3',on_delete=models.SET_NULL,null= True)
    shisetsu_name_3 = models.ForeignKey(Shisetsu, verbose_name='3 installations', related_name='shisetsu_name3',on_delete=models.SET_NULL,null= True)
    shift_name_4 = models.ForeignKey(Shift, verbose_name='4 nom d'équipe', related_name='shift_name4',on_delete=models.SET_NULL,null= True)
    shisetsu_name_4 = models.ForeignKey(Shisetsu, verbose_name='4 établissements', related_name='shisetsu_name4',on_delete=models.SET_NULL,null= True)

Dans la continuité, je souhaite afficher le décalage une fois effectué correctement, donc C'est un problème, mais je vais faire un quart de travail d'un mois à la main.

Lorsque j'essaie d'enregistrer un horaire, le quart est une entrée obligatoire Je l'ai sorti.

schedule/models.py


from django.db import models
from shisetsu.models import *
from accounts.models import *

# Create your models here.

class Shift(models.Model):
    id = models.AutoField(verbose_name='Identifiant d'équipe',primary_key=True)
    name = models.CharField(verbose_name='Nom de l'équipe', max_length=1)
    start_time = models.TimeField(verbose_name="Heure de début")
    end_time = models.TimeField(verbose_name="heure de fin")
    wrok_time = models.IntegerField(verbose_name='Heures d'ouverture')

    def __str__(self):
        return self.name
    
class Schedule(models.Model):
    id = models.AutoField(verbose_name='ID de planification',primary_key=True)
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    date = models.DateField(verbose_name='Date')
    shift_name_1 = models.ForeignKey(Shift, verbose_name='1 nom d'équipe', related_name='shift_name1',on_delete=models.SET_NULL,null= True)
    shisetsu_name_1 = models.ForeignKey(Shisetsu, verbose_name='1 établissement', related_name='shisetsu_name1',on_delete=models.SET_NULL,blank=True, null=True)
    shift_name_2 = models.ForeignKey(Shift, verbose_name='2 nom d'équipe', related_name='shift_name2',on_delete=models.SET_NULL,blank=True, null=True)
    shisetsu_name_2 = models.ForeignKey(Shisetsu, verbose_name='2 installations', related_name='shisetsu_name2',on_delete=models.SET_NULL,blank=True, null=True)
    shift_name_3 = models.ForeignKey(Shift, verbose_name='3 nom d'équipe', related_name='shift_name3',on_delete=models.SET_NULL,blank=True, null=True)
    shisetsu_name_3 = models.ForeignKey(Shisetsu, verbose_name='3 installations', related_name='shisetsu_name3',on_delete=models.SET_NULL,blank=True, null=True)
    shift_name_4 = models.ForeignKey(Shift, verbose_name='4 nom d'équipe', related_name='shift_name4',on_delete=models.SET_NULL,blank=True, null=True)
    shisetsu_name_4 = models.ForeignKey(Shisetsu, verbose_name='4 établissements', related_name='shisetsu_name4',on_delete=models.SET_NULL,blank=True, null=True)

60 données de quart enregistrées temporairement

image.png

image.png

De là, je vais créer un écran qui ressemble au décalage

Recommended Posts

Créez un modèle pour votre planning Django
Créer un planning Django
[Django] Créez un modèle adapté au numéro de téléphone / code postal
Créez un tableau de bord pour les appareils réseau avec Django!
[Python] 2 Créez une carte risque-rendement pour votre portefeuille d'actifs
Créer une page d'accueil avec django
Créer un écran de connexion Django
Créez votre propre middleware Django
Créez une API d'intégration sociale pour les applications smartphone avec Django
[Python] Créer un écran pour le code d'état HTTP 403/404/500 avec Django
Étapes pour créer un projet Django
[Django] Créez votre propre page d'erreur 403, 404, 500
Créer un téléchargeur de fichiers avec Django
Créer un bot LINE avec Django
Créez un environnement python sur votre Mac
Créons un environnement virtuel pour Python
Commandes pour créer un nouveau projet django
Obtenir un modèle de référence à l'aide de Django Serializer
Création de la première application avec Django startproject
Créer un dictionnaire Hatena pour SKK (supplémentaire)
Implémenter un modèle utilisateur personnalisé dans Django
Ecrire brièvement if-else du template Django
Créez un modèle de prédiction de survie pour les passagers du Kaggle Titanic sans utiliser Python
Modèle Django: ManyToManyField
Créer un LINE BOT avec Minette pour Python
Résumé du tutoriel Django pour les débutants par les débutants ② (Modèle, Admin)
Prise en charge de l'internationalisation avec Django 1.9
Créer un modèle d'investissement dynamique simple en Python
Créez une application Hello World avec un seul fichier avec django
Comment créer une API Rest dans Django
Jusqu'à ce que vous créiez une nouvelle application dans Django
[Apprentissage automatique] Créez un modèle d'apprentissage automatique en effectuant un apprentissage par transfert avec votre propre ensemble de données
Créez une roue de votre propre module OpenCV
Je souhaite créer une base de données de déjeuners [EP1] Django pour la première fois
Je souhaite créer une base de données de déjeuner [EP1-4] Django pour la première fois
Créer un ensemble de données d'images à utiliser pour la formation
Création d'une image trompeuse pour le modèle de génération de légende
Créer une application Todo avec Django REST Framework + Angular
Créez votre propre Big Data en Python pour validation
[CRUD] [Django] Créer un site CRUD en utilisant le framework Python Django ~ 1 ~
Créez un code QR pour l'URL sous Linux
Racler votre article Qiita pour créer un nuage de mots
Essayez de créer une application Todo avec le framework Django REST
[Go] Comment créer une erreur personnalisée pour Sentry
Créer une application Todo avec Django ③ Créer une page de liste de tâches
Faire du modèle une chaîne sur le modèle HTML Django
Comment créer un référentiel local pour le système d'exploitation Linux
Créer une couche pour AWS Lambda Python dans Docker
[CRUD] [Django] Créer un site CRUD en utilisant le framework Python Django ~ 2 ~
Créer une visionneuse de modèle 3D avec PyQt5 et PyQtGraph
À moi-même en tant que débutant Django (1) -Création d'un projet / application-
À moi-même en tant que débutant Django (4) --Créer une application mémo-
Créer une application Todo avec Django ⑤ Créer une fonction d'édition de tâches
xgboost: modèle d'apprentissage automatique efficace pour les données de table
[CRUD] [Django] Créer un site CRUD en utilisant le framework Python Django ~ 3 ~
[CRUD] [Django] Créer un site CRUD en utilisant le framework Python Django ~ 4 ~
[CRUD] [Django] Créer un site CRUD en utilisant le framework Python Django ~ 5 ~