Django模型和管理员中的业务规则

我试图从Django教程/文档中找到类似的示例,但到目前为止还没有找到任何东西。 我想拥有的业务规则是:

  • 每个样本都有自己的一组批处理
  • 会话具有一组样本,并且每个样本在会话
  • 中只能有一个批次

示例示例:

WineA(批次:2016、2017、2018)

WineB(批次:2015、2019)

示例会话:

会话1

WineA-2017年批次

WineA-2018年批次

WineB-2015年批次

模型如下:

set dpassword [read -nonewline $oF]

但是我无法确定的是我是否应该在模型中定义这些业务规则,还是应该由视图来照顾。

预期结果是,当我在Django站点管理员中添加新的Session时,可以添加Sample的(同一会话中不止一次)并为每个示例选择或定义一批。

boh333 回答:Django模型和管理员中的业务规则

我认为以稍微不同的方式执行此操作可能很有用。我不确定您要干什么,但我想这是安排品酒的时间。也许是这样的布局:

class Wine(models.Model):
    wine_name = models.CharField(max_length=250,unique=True)

    def __str__(self):
        return self.wine_name

class WineVintage(models.Model):
    wine = models.ForeignKey(Wine,on_delete=models.CASCADE)
    year = models.IntegerField(default=0)

    def __str__(self):
        return str(self.year) + ' ' + str(self.wine)

class Session(models.Model):
    survey_name = models.CharField(max_length=250,unique=True)
    survey_sample = models.ManyToManyField(WineVintage)

在这种情况下,您可以拥有自己的葡萄酒(例如:Wine: Caymus),然后您可以拥有自己的葡萄酒(例如:WineVintages: 2017 Caymus,2016 Caymus),然后在会话中,您可以拥有WineVintages确保您没有重复相同的类型和年份。

这有帮助吗?如果没有,请让我知道,我将尝试提出其他建议。另外请注意,我是手写的,可能存在语法错误或错字。

本文链接:https://www.f2er.com/3114562.html

大家都在问