我还有另一个可能非常基本的 Django 问题。我正在为我的课程编写一个数据库应用程序,我希望能够从应用程序中设置当前年份。这背后的想法是,当所有的标记等完成后,我可以手动切换到下一学年。然后,切换当前年份的功能也应该做其他事情 - 让学生参加新的默认课程等。
所以我创建了一个名为 MetaData 的模型:
class MetaData(models.Model):
data_id = models.IntegerField(default = 1, unique = True)
current_year = models.IntegerField(choices=ACADEMIC_YEARS)
如果我可以在其他模型中访问 current_year 那就太好了,例如当我想输入新课程/学生时将其设置为默认值。我试过这个:
class Course(models.Model):
try:
meta = MetaData.objects.get(data_id=1)
current_year = meta.current_year
except MetaData.DoesNotExist:
current_year = 2010
year = models.IntegerField(choices=ACADEMIC_YEARS, default=current_year)
不幸的是,当我第一次运行 syncdb 时,我得到了错误“没有这样的表:database_metadata”——我猜是因为 syncdb 在测试代码时没有创建表。
有没有更好的解决方案?