店舗の従業員名簿を管理するために、小さな django アプリを構築しています。従業員はフリーランサーのようなもので、毎週のほぼ固定されたスケジュールがあり、平日/時間に追加のスケジュールを要求する場合があります。
私はpythonとdjangoの両方が初めてで、django adminを使用しています。
「手動で」「Turno」を追加すると、すべてが(私にとって)十分に機能します(作業割り当て、よくわかりません。おそらく英語では「Shift」でしょうか?)。
Django管理者を介して、毎週固定されたTurnosを(「手動で」1つずつではなく、すべて一度に)追加する何らかの方法が必要です。たとえば、平日、開始時刻と終了時刻、および2(または3)か月の停止日を設定します事前に...どうやって?
どんな種類の助けも素晴らしいでしょう、私はあなたに私の義務を理解するように頼んでいません.
ここに私のmodels.pyがあります:
from django.db import models
from django.contrib.auth.models import User
import datetime
class Dia(models.Model):
fecha = models.DateField(unique=True)
class Meta:
ordering = ['fecha']
def __unicode__(self):
return (self.fecha.strftime('%A %d de %b de \'%y'))
class Turno(models.Model):
dia = models.ForeignKey(Dia)
perfil_usuario = models.ForeignKey(User, verbose_name="Usuario")
comienza = models.TimeField()
finaliza = models.TimeField()
comentarios = models.TextField(blank=True, null=True)
def __unicode__(self):
return self.dia.fecha.strftime('%A %d de %b de \'%y') + ' - ' + self.perfil_usuario.username
そして、ここに私のadmin.pyがあります
from roquen.horarios.models import Turno, Dia
from django.contrib.auth.models import User
from django.contrib import admin
from django import forms
admin.site.register(Dia)
class TurnoAdminForm(forms.ModelForm):
class Meta:
model = Turno
def clean_finaliza(self):
data = self.cleaned_data['finaliza']
if data <= self.cleaned_data['comienza']:
raise forms.ValidationError('La hora de fin debe ser posterior a la de comienzo')
return data
class TurnoAdmin(admin.ModelAdmin):
form = TurnoAdminForm
list_display = ['dia', 'perfil_usuario', 'comienza', 'finaliza']
admin.site.register(Turno, TurnoAdmin)