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

Database 在Django中存储多个日期字符串的最佳方法是什么?,database,django,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) crea

我正在构建一个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',)

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

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

例如,如果您需要根据事件的日期筛选事件,我不确定如何使用逗号分隔的字段轻松做到这一点,但我可以清楚地看到您如何使用当前方法做到这一点:

 Event.objects.filter(eventdate_set__date=my_date)

--因此,除非您指定您的计划使用模式,否则我认为没有一个通用的答案。

我认为您是对的。使用长字符串进行过滤会非常糟糕。谢谢