Wir werden eine App erstellen, um eine Verschiebungstabelle zu erstellen.
terminal
python3 manage.py startapp schedule
Fügen Sie die App Ihren Einstellungen hinzu.
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'
]
Wir werden eine Tabelle in der erstellten Zeitplan-App erstellen.
Die Schichten sollten so verwaltet werden, dass A von 9:00 bis 18:00 Uhr ist. Möglicherweise können Sie es auch so haben, als wären Sie bezahlt worden. Deshalb werde ich versuchen, es im Textfeld zu haben.
In Bezug auf den Zeitplan bedeutet dies, dass Sie mehrere Schichten pro Tag eingeben und in mehreren Einrichtungen arbeiten können. Es ist noch nie eine Schicht von 3 oder mehr eingetreten.
Basierend darauf werde ich versuchen, es mit der folgenden Tabelle zu machen.
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='Schicht-ID',primary_key=True)
name = models.CharField(verbose_name='Name verschieben', max_length=1)
start_time = models.TimeField(verbose_name="Startzeit")
end_time = models.TimeField(verbose_name="Endzeit")
wrok_time = models.IntegerField(verbose_name='Arbeitszeit')
def __str__(self):
return self.name
class Schedule(models.Model):
id = models.IntegerField(verbose_name='Zeitplan-ID',primary_key=True)
user = models.OneToOneField(User, on_delete=models.CASCADE)
date = models.DateField(verbose_name='Datum')
shift_id_1= models.ForeignKey(Shift, verbose_name='1 Schichtname', on_delete=models.CASCADE)
shisetsu_id_1 = models.ForeignKey(Shisetsu, verbose_name='1 Einrichtung', on_delete=models.CASCADE)
shift_id_2 = models.ForeignKey(Shift, verbose_name='2 Schichtname', on_delete=models.CASCADE)
shisetsu_id_2 = models.ForeignKey(Shisetsu, verbose_name='2 Einrichtungen', on_delete=models.CASCADE)
shift_id_3 = models.ForeignKey(Shift, verbose_name='3 Schichtname', on_delete=models.CASCADE)
shisetsu_id_3 = models.ForeignKey(Shisetsu, verbose_name='3 Einrichtungen', on_delete=models.CASCADE)
shift_id_4 = models.ForeignKey(Shift, verbose_name='4 Schichtname', on_delete=models.CASCADE)
shisetsu_id_4 = models.ForeignKey(Shisetsu, verbose_name='4 Einrichtungen', on_delete=models.CASCADE)
Ich konnte das nicht machen
2 bis 3 Stunden, um dies zu überprüfen Dies ist die 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='Schicht-ID',primary_key=True)
name = models.CharField(verbose_name='Name verschieben', max_length=1)
start_time = models.TimeField(verbose_name="Startzeit")
end_time = models.TimeField(verbose_name="Endzeit")
wrok_time = models.IntegerField(verbose_name='Arbeitszeit')
def __str__(self):
return self.name
class Schedule(models.Model):
id = models.IntegerField(verbose_name='Zeitplan-ID',primary_key=True)
user = models.OneToOneField(User, on_delete=models.CASCADE)
date = models.DateField(verbose_name='Datum')
shift_name_1 = models.ForeignKey(Shift, verbose_name='1 Schichtname', related_name='shift_name1',on_delete=models.SET_NULL,null= True)
shisetsu_name_1 = models.ForeignKey(Shisetsu, verbose_name='1 Einrichtung', related_name='shisetsu_name1',on_delete=models.SET_NULL,null= True)
shift_name_2 = models.ForeignKey(Shift, verbose_name='2 Schichtname', related_name='shift_name2',on_delete=models.SET_NULL,null= True)
shisetsu_name_2 = models.ForeignKey(Shisetsu, verbose_name='2 Einrichtungen', related_name='shisetsu_name2',on_delete=models.SET_NULL,null= True)
shift_name_3 = models.ForeignKey(Shift, verbose_name='3 Schichtname', related_name='shift_name3',on_delete=models.SET_NULL,null= True)
shisetsu_name_3 = models.ForeignKey(Shisetsu, verbose_name='3 Einrichtungen', related_name='shisetsu_name3',on_delete=models.SET_NULL,null= True)
shift_name_4 = models.ForeignKey(Shift, verbose_name='4 Schichtname', related_name='shift_name4',on_delete=models.SET_NULL,null= True)
shisetsu_name_4 = models.ForeignKey(Shisetsu, verbose_name='4 Einrichtungen', related_name='shisetsu_name4',on_delete=models.SET_NULL,null= True)
Ich habe es endlich geschafft ... Es war lang und wenn Sie mehr als einmal in einer Tabelle auf dieselbe Tabelle verweisen möchten, müssen Sie jeden bewerteten Namen festlegen.
Die ID wurde bei der Eingabe vorläufiger Daten in die automatische Inkrementierung geändert
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='Schicht-ID',primary_key=True)
name = models.CharField(verbose_name='Name verschieben', max_length=1)
start_time = models.TimeField(verbose_name="Startzeit")
end_time = models.TimeField(verbose_name="Endzeit")
wrok_time = models.IntegerField(verbose_name='Arbeitszeit')
def __str__(self):
return self.name
class Schedule(models.Model):
id = models.AutoField(verbose_name='Zeitplan-ID',primary_key=True)
user = models.OneToOneField(User, on_delete=models.CASCADE)
date = models.DateField(verbose_name='Datum')
shift_name_1 = models.ForeignKey(Shift, verbose_name='1 Schichtname', related_name='shift_name1',on_delete=models.SET_NULL,null= True)
shisetsu_name_1 = models.ForeignKey(Shisetsu, verbose_name='1 Einrichtung', related_name='shisetsu_name1',on_delete=models.SET_NULL,null= True)
shift_name_2 = models.ForeignKey(Shift, verbose_name='2 Schichtname', related_name='shift_name2',on_delete=models.SET_NULL,null= True)
shisetsu_name_2 = models.ForeignKey(Shisetsu, verbose_name='2 Einrichtungen', related_name='shisetsu_name2',on_delete=models.SET_NULL,null= True)
shift_name_3 = models.ForeignKey(Shift, verbose_name='3 Schichtname', related_name='shift_name3',on_delete=models.SET_NULL,null= True)
shisetsu_name_3 = models.ForeignKey(Shisetsu, verbose_name='3 Einrichtungen', related_name='shisetsu_name3',on_delete=models.SET_NULL,null= True)
shift_name_4 = models.ForeignKey(Shift, verbose_name='4 Schichtname', related_name='shift_name4',on_delete=models.SET_NULL,null= True)
shisetsu_name_4 = models.ForeignKey(Shisetsu, verbose_name='4 Einrichtungen', related_name='shisetsu_name4',on_delete=models.SET_NULL,null= True)
Als Fortsetzung möchte ich die einmal vorgenommene Verschiebung korrekt anzeigen Es ist ein Ärger, aber ich werde eine einmonatige Schicht von Hand machen.
Wenn ich versuche, einen Zeitplan zu registrieren, ist die Schicht ein erforderlicher Eintrag Ich habe es veröffentlicht.
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='Schicht-ID',primary_key=True)
name = models.CharField(verbose_name='Name verschieben', max_length=1)
start_time = models.TimeField(verbose_name="Startzeit")
end_time = models.TimeField(verbose_name="Endzeit")
wrok_time = models.IntegerField(verbose_name='Arbeitszeit')
def __str__(self):
return self.name
class Schedule(models.Model):
id = models.AutoField(verbose_name='Zeitplan-ID',primary_key=True)
user = models.OneToOneField(User, on_delete=models.CASCADE)
date = models.DateField(verbose_name='Datum')
shift_name_1 = models.ForeignKey(Shift, verbose_name='1 Schichtname', related_name='shift_name1',on_delete=models.SET_NULL,null= True)
shisetsu_name_1 = models.ForeignKey(Shisetsu, verbose_name='1 Einrichtung', related_name='shisetsu_name1',on_delete=models.SET_NULL,blank=True, null=True)
shift_name_2 = models.ForeignKey(Shift, verbose_name='2 Schichtname', related_name='shift_name2',on_delete=models.SET_NULL,blank=True, null=True)
shisetsu_name_2 = models.ForeignKey(Shisetsu, verbose_name='2 Einrichtungen', related_name='shisetsu_name2',on_delete=models.SET_NULL,blank=True, null=True)
shift_name_3 = models.ForeignKey(Shift, verbose_name='3 Schichtname', related_name='shift_name3',on_delete=models.SET_NULL,blank=True, null=True)
shisetsu_name_3 = models.ForeignKey(Shisetsu, verbose_name='3 Einrichtungen', related_name='shisetsu_name3',on_delete=models.SET_NULL,blank=True, null=True)
shift_name_4 = models.ForeignKey(Shift, verbose_name='4 Schichtname', related_name='shift_name4',on_delete=models.SET_NULL,blank=True, null=True)
shisetsu_name_4 = models.ForeignKey(Shisetsu, verbose_name='4 Einrichtungen', related_name='shisetsu_name4',on_delete=models.SET_NULL,blank=True, null=True)
Vorübergehend registrierte 60 Schichtdaten
Von hier aus werde ich einen Bildschirm erstellen, der wie die Verschiebung aussieht
Recommended Posts