在Django中存储多个日期字符串的最佳方式是什么?
问题描述:
我正在构建一个需要存储事件的多个选定日期的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',)
但是,这是最好的办法吗?有一个更好的执行选择,如逗号分隔的字符串?
答
最好的方法是最好的服务你的目的。在Django中没有内置逗号分隔的字段,但是您可以轻松地推出自己的一个 - 问题是如果这是您真正需要的。例如,如果您需要根据日期过滤事件,我不确定您如何轻松地使用逗号分隔字段来完成此操作,但我可以清楚地看到如何使用您当前的方法来完成此操作:
Event.objects.filter(eventdate_set__date=my_date)
- 所以除非你指定你的计划使用模式,我不认为有一个普遍的答案。
我认为你是对的。过滤将是一个很长的字符串可怕的神。谢谢。 – Sebastian 2010-02-21 21:22:09