Database 在Django中存储多个日期字符串的最佳方法是什么?
我正在构建一个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
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)
--因此,除非您指定您的计划使用模式,否则我认为没有一个通用的答案。我认为您是对的。使用长字符串进行过滤会非常糟糕。谢谢