我在Django 1.8项目中有以下模型:
class MeditationType(models.Model):
"""
Stores user's meditation types and goals
"""
creation_date = models.DateTimeField(auto_now_add=True)
modify_date = models.DateTimeField(auto_now=True)
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
meditation_name = models.CharField(max_length=30)
# Meditation goals per weekday, in minutes
goal_sun = models.PositiveIntegerField(default=0, validators=[MaxValueValidator(1440)])
goal_mon = models.PositiveIntegerField(default=0, validators=[MaxValueValidator(1440)])
goal_tue = models.PositiveIntegerField(default=0, validators=[MaxValueValidator(1440)])
goal_wed = models.PositiveIntegerField(default=0, validators=[MaxValueValidator(1440)])
goal_thu = models.PositiveIntegerField(default=0, validators=[MaxValueValidator(1440)])
goal_fri = models.PositiveIntegerField(default=0, validators=[MaxValueValidator(1440)])
goal_sat = models.PositiveIntegerField(default=0, validators=[MaxValueValidator(1440)])
def get_absolute_url(self):
return reverse('meditation_types_update', kwargs={'pk': self.pk})
class MeditationLog(models.Model):
"""
Stores user's meditation logs (journal entries)
"""
creation_date = models.DateTimeField(auto_now_add=True)
modify_date = models.DateTimeField(auto_now=True)
meditation_date = models.DateTimeField()
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
meditation_type = models.ForeignKey(MeditationType, on_delete=models.CASCADE)
# Amount of time (in minutes) this meditation type was practiced on this date
meditation_minutes = models.PositiveIntegerField(default=0, validators=[MaxValueValidator(1440)])
def get_absolute_url(self):
return reverse('meditation_types_update', kwargs={'pk': self.pk})
我想构建一个包含以下字段的表单: form fields
请注意:
表单将用于创建和更新条目。
用户(MeditationType模型)创建了示例中使用的3种冥想(聚焦注意力,正念和爱心),因此这些字段会有所不同。对于一些用户可能是单个冥想类型,对于其他用户可能是10种不同的冥想类型。因此,必须根据每个用户的冥想类型动态定义表单字段。
提交/发布此表单时,我们必须保存MeditationLog对象的多个实例(每个冥想类型一个)。
在Django 1.8中,最简单有效的方法是什么?此外,如果您能想出更好的方法来构建模型(这将使表单构建更容易),请告诉我。
提前致谢。
答案 0 :(得分:0)
经过一些研究,我终于找到了可以使用的东西:
https://jacobian.org/writing/dynamic-form-generation/(雅各布是Django最初的创始人之一)
http://www.dougalmatthews.com/2009/Dec/16/nicer-dynamic-forms-in-django/
https://code.djangoproject.com/wiki/CookBookNewFormsDynamicFields
http://agiliq.com/blog/2008/10/dynamic-forms-with-django/
http://blog.p3infotech.in/2013/how-to-create-dynamic-forms-in-django/
如果您遇到类似问题,上面的链接可能有所帮助。
感谢那些回复的人。