2010-02-21 5 views
2

이벤트에 대해 선택한 여러 날짜를 저장해야하는 장고 앱을 만들고 있습니다.장고에 여러 날짜 문자열을 저장하는 가장 좋은 방법은 무엇입니까?

class Event(models.Model): 
    title  = models.CharField(max_length=200) 
    creator = models.ForeignKey(User) 

    modified = models.DateTimeField(auto_now=True, auto_now_add=False) 
    created = models.DateTimeField(auto_now=False, auto_now_add=True) 

    def __unicode__(self): 
     return self.title 

    class Meta: 
     ordering = ('title',) 

그런 다음 EventDates의 별도의 테이블 구축 :

class EventDate(models.Model): 
    event  = models.ForeignKey(Event) 

    date  = models.DateField() 

    modified = models.DateTimeField(auto_now=True, auto_now_add=False) 
    created  = models.DateTimeField(auto_now=False, auto_now_add=True) 

    def __unicode__(self): 
     return "%s/%s" % (self.event, self.date) 

    class Meta: 
     ordering = ('created',) 

을하지만 이것은 가장 좋은 방법은 마음에 와서 제일 먼저 이벤트 모델을 구축했다? 쉼표로 구분 된 문자열과 같이 더 우수한 대안이 있습니까?

답변

3

가장 좋은 방법은 용도에 가장 적합한 방법입니다. Django에는 쉼표로 구분 된 필드가 내장되어 있지 않지만 자신 만의 필드를 쉽게 굴릴 수 있습니다. 이것이 정말로 필요한 것이면 문제가됩니다.

예를 들어, 날짜를 기준으로 이벤트를 필터링해야하는 경우 쉼표로 구분 된 필드를 사용하여이를 쉽게 수행 할 수 있을지 모르지만 현재 접근 방식으로 어떻게 수행 할 수 있는지 명확하게 알 수 있습니다.

Event.objects.filter(eventdate_set__date=my_date) 

- 계획 한 사용 패턴을 지정하지 않으면 일반적인 대답이 없다고 생각합니다.

+0

나는 당신이 옳다고 생각합니다. 필터링은 긴 문자열로 신이 끔찍합니다. 감사. – Sebastian

관련 문제