我正在构建一个需要为事件存储多个选定日期的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',)
但这是最好的方法吗?是否有更好的表现替代品,如逗号分隔的字符串?
答案 0 :(得分:3)
最好的方法是最符合您目的的方法。 Django中没有内置的逗号分隔字段,但您可以轻松地自己滚动 - 问题是如果这是您真正需要的。
例如 - 如果您需要根据日期过滤事件,我不确定如何使用这样的逗号分隔字段轻松完成此操作,但我可以清楚地看到您如何使用当前方法执行此操作:< / p>
Event.objects.filter(eventdate_set__date=my_date)
- 所以除非你指定你的计划使用模式,否则我认为没有一般的答案。