在Django中存储多个日期字符串的最佳方法是什么?

时间:2010-02-21 20:34:44

标签: database django

我正在构建一个需要为事件存储多个选定日期的Django应用程序。首先想到的是构建事件模型:

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',)

但这是最好的方法吗?是否有更好的表现替代品,如逗号分隔的字符串?

1 个答案:

答案 0 :(得分:3)

最好的方法是最符合您目的的方法。 Django中没有内置的逗号分隔字段,但您可以轻松地自己滚动 - 问题是如果这是您真正需要的。

例如 - 如果您需要根据日期过滤事件,我不确定如何使用这样的逗号分隔字段轻松完成此操作,但我可以清楚地看到您如何使用当前方法执行此操作:< / p>

 Event.objects.filter(eventdate_set__date=my_date)

- 所以除非你指定你的计划使用模式,否则我认为没有一般的答案。