2012-08-31 6 views
9

मैं एक कंपनी के एक सप्ताह के लिए व्यावसायिक घंटे का मॉडल करने की कोशिश कर रहा हूं। यहां मेरा प्रयास है:Django - व्यवसाय के घंटों के लिए ऑब्जेक्ट

class Company(models.Model): 
    name = models.CharField(max_length=100) 
    logo = models.FileField(upload_to='company_logos') 
    mon_start = models.TimeField() 
    mon_end = models.TimeField() 
    tue_start = models.TimeField() 
    tue_end = models.TimeField() 
    wed_start = models.TimeField() 
    wed_end = models.TimeField() 
    thu_start = models.TimeField() 
    thu_end = models.TimeField() 
    fri_start = models.TimeField() 
    fri_end = models.TimeField() 
    sat_start = models.TimeField() 
    sat_end = models.TimeField() 
    sun_start = models.TimeField(blank=True) 
    sun_end = models.TimeField(blank=True) 

क्या यह सही लगता है?

क्या इसे परिभाषित करने के लिए कोई और गतिशील तरीका नहीं है?

क्या मैं आसानी से प्रत्येक दिन (एक रूप पर) मान्य कर सकता हूं?

+1

मुझे लगता है कि यह एक अच्छा विचार - http://stackoverflow.com/a/8128427/830941 – lyapun

+0

के संभावित डुप्लिकेट [किसी भी मौजूदा Django में "शुरुआती घंटों" को लागू करने का समाधान] (http://stackoverflow.com/questions/8128143/any-existing-solution-to-implement-opening-hours-in-django) –

उत्तर

15

@lyapun सुझाव से, मेरे लिए एक स्वीकार्य समाधान होगा:

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


class Company(models.Model): 
    name = models.CharField(
     max_length=100 
    ) 
    logo = models.FileField(
     upload_to='company_logos' 
    ) 



class OpeningHours(models.Model): 
    store = models.ForeignKey(
     Company 
    ) 
    weekday = models.IntegerField(
     choices=WEEKDAYS, 
     unique=True 
    ) 
    from_hour = models.TimeField() 
    to_hour = models.TimeField() 
+1

मुझे लगता है कि आप अनन्य रूप से करना चाहते हैं स्टोर और सप्ताहांत, बस सप्ताहांत के बजाय। – byoungb

+0

यह सही है, यह वास्तव में 'unique_together = (सप्ताहांत, स्टोर)' –

+0

है जो Django 1.8 में एक [1] अवधि फ़ील्ड() को__our के लिए बेहतर विकल्प होगा। कभी-कभी स्टोर 12AM के बाद बंद हो सकता है? इस तरह किसी भी दिन बंद समय एक विशिष्ट दिन से_hour + अवधि है? क्या यह एक अच्छा दृष्टिकोण है? [1]: https: //docs.djangoproject.com/en/1.8/ref/models/fields/#durationfield – Pranaysharma