在同一页面中进行渲染并呈现多个inlineformset_factory

时间:2019-07-04 16:59:52

标签: django django-models django-forms django-templates django-views

我正在编写Django应用程序,但是我无法解决如何构造模型以及如何使用inlineformset_factory在单个页面上为每个客户动态添加变量的能力。每个工作日(0-6)的活动集。

例如:

  • 星期一
    • 网球
    • 瑜伽
  • 星期二
    • 网球
    • 跑步
    • 柔道

[...]

  • 周日
    • 步行
    • 游泳

假设我有这个模型:

DOW = (
    (1, "Lunedì"),
    (2, "Martedì"),
    (3, "Mercoledì"),
    (4, "Giovedì"),
    (5, "Venerdì"),
    (6, "Sabato"),
    (7, "Domenica"),
)

class Customer(models.Model):
    firstname = models.CharField(max_length=20)
    lastname = models.CharField(max_length=20)

    def __str__(self):
        return self.firstname + " " + self.lastname

class Week(models.Model):
    cliente = models.ForeignKey(
        Customer,
        on_delete=models.CASCADE,
        null=True,
        blank=True,
        default=None
    )
    week_number = models.IntegerField()
    week_day = models.IntegerField(
       choices=DOW,
       null=False
    )


    def __str__(self):
        return "Week number: " + self.week_number

class Activity(models.Model):
    name = models.CharField(max_length=20)
    week_day = models.ForeignKey(?)

    def __str__(self):
        return "Activity: " + self.name

活动<->周之间的关系是什么,以便使将属于每个“ week_day”的特定“ week_number”的多个表格合并到一个页面中的能力? 我每天必须创建一个特定的“活动”模型,然后将其用于inlineformset_factory(Week,Activity_Monday),在我看来,这不是正确的方法...

基本上我意识到这次我不了解如何处理模型之间的这些关系。

任何建议,帮助或示例都非常感谢!

0 个答案:

没有答案