2011-11-14 13 views

Respuesta

11

¿Qué quieres decir? Parece bastante simple. Ajústelo según su orden de semana. Y si lo desea, agregue la validación. Pero las personas deben ser lo suficientemente inteligentes como para no necesitar validación para ese tipo de cosas.

WEEKDAYS = [ 
    (1, _("Monday")), 
    (2, _("Tuesday")), 
    (3, _("Wednesday")), 
    (4, _("Thursday")), 
    (5, _("Friday")), 
    (6, _("Saturday")), 
    (7, _("Sunday")), 
] 

class OpeningHours(models.Model): 
    store = models.ForeignKey("StoreModel") 
    weekday_from = models.IntegerField(choices=WEEKDAYS, unique=True) 
    weekday_to = models.IntegerField(choices=WEEKDAYS) 
    from_hour = models.IntegerField(choices=range(1,25)) 
    to_hour = models.IntegerField(choices=range(1,25)) 

    def get_weekday_from_display(self): 
     return WEEKDAYS[self.weekday_from] 

    def get_weekday_to_display(self): 
     return WEEKDAYS[self.weekday_to] 

class SpecialDays(models.Model): 
    holiday_date = models.DateField() 
    closed = models.BooleanField(default=True) 
    from_hour = models.IntegerField(choices=range(1,25), null=True, blank=True) 
    to_hour = models.IntegerField(choices=range(1,25), null=True, blank=True) 
+4

en lugar de escribir los métodos get_weekday_from y get_weekday_to, puede usar get_weekday_from_display y get_weekday_to_display, como se menciona aquí: https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.get_FOO_display – patrick

+1

en esta solución no es posible tener horarios diferentes en días diferentes de la semana, quizás esta es la clave del problema – juliomalegria

+1

@ julio.alegria: ¿Por qué no es posible? Fue hecho así que sería posible tener intervalos regulares, uno o varios días. Y luego puede agregarle SpecialDays además de eso. Realmente no veo el desafío aquí. Ni por qué este arnoud briche está haciendo esta pregunta sin darle seguimiento con alguna sustancia real. – benjaoming

1

Hay una aplicación para eso reutilizable: django-openinghours. El código base de la aplicación parece un poco polvoriento a primera vista (no PEP8, camelCase, ..), pero django-openinghours viene con un conjunto de características útiles, es confiable y probado en el campo desde hace años.

Cuestiones relacionadas