我有这样的课

class Ownership:
    like = models.BooleanField()
    queue = models.BooleanField()
    started = models.BooleanField()
    current = models.BooleanField()
    finished = models.BooleanField()

可以通过放置dict {like:True, finished:True...}从REST API更新它。

同时,某些字段具有关于它们的规则,例如:

如果like=True ,则finished=True 我遇到的问题是如何正确更新值,当客户发帖说{like:True, finished:False} ,如果我们在setter上使用like来设置finish = True,则在setter上使用setter会重置值为假。

有什么好的方法/设计模式可以帮助澄清和解决这种情况?

===============>>#1 票数:0

在我看来,在这种情况下,您将不得不编写一个将返回HTTP 400或类似内容的验证器。 也许409更合适? 在任何一种情况下,您都可以包含错误字符串,以说明哪个键/值组合导致了错误。

===============>>#2 票数:0

您可以覆盖默认的保存方法来验证和更改值

class Ownership:
    like = models.BooleanField()
    queue = models.BooleanField()
    started = models.BooleanField()
    current = models.BooleanField()
    finished = models.BooleanField()

    def save(self, *args, **kwargs):
        if self.like:
            self.finished = True
        super(Ownership, self).save(*args, **kwargs) # Call the "real" save() method

  ask by Dmitry Shevchenko translate from so

未解决问题?本站智能推荐:

6回复

python设计模式[关闭]

我正在寻找使用Python提供最佳实践,设计模式和SOLID原则示例的任何资源。
2回复

在Python中,“Builder”设计模式是否过时了?

我正在阅读这篇关于Scala中的设计模式的文章 ,他们提出了Builder模式与Java相关的论点,因为它允许代码如下: 与更易混淆的形式相比: 他们后来说: 在像Scala这样的语言允许你在传递参数时命名参数,构建器模式大多已经过时了...... 这是Pyth
1回复

Python API包装器设计模式

我正在尝试建立一个将为API建立XML响应的库。 为了帮助说明我的问题,这里有2个示例API响应。 第一个用于显示菜单,第二个用于显示文本。 ... 好的,所以我的模块轮廓如下所示: 注意:出于可读性考虑,我删除了这些类处理的验证和消毒处理。 所以我的问题是:
1回复

魔术方法和熊猫继承的Python设计模式

所以我基本上把这个问题提一些建议 我有几个基本执行一些熊猫操作并返回数据框的类。 但是这些数据帧需要在某些过滤器选项上进行加减。 我计划编写一个重写__add__和__sub__方法的类,以便由实现这些过滤器的代码来添加或减去这些数据帧。 以下是基本结构 dfA和dfB是熊猫
4回复

Python设计模式适用于许多条件

在许多条件下编写验证函数的推荐结构是什么? 见这两个例子。 第一个看起来很丑,第二个不常见,也许是因为assert通常用于排除意外行为。 还有更好的选择吗? 要么
1回复

用于计算流程的Python OOP设计模式

我是刚刚接触新手的人,并且对有关对某种类型的计算进行编码的最佳方法有一个简短的问题。 我很好奇,是否存在解决此类问题的既定设计模式。 考虑一个化学工艺流程,在该流程中,您将具有温度,压力,流速等属性的材料(a,b)转换为最终产品c。 要到达那里,我需要单元操作D,E,F ...,每个单元操作都有其
3回复

用于数据转换的Python设计模式

我发现自己做了很多这样的事情: 忽略实现细节。 这里的重点是,我要处理两个共享相似数据并执行简单,重复和更复杂转换的数据结构。 有没有使这些类型的转换更易于编码的设计模式或其他开发人员友好的方法? 我曾考虑过创建一个表和相关函数来转换简单的属性名称,但是我感觉在处理更复杂的
1回复

最佳设计模式以执行python中的步骤

我必须以顺序依赖的方式依次执行多个动作。 它们都继承自相同的Step类,并接收相同的2个参数。 按顺序执行这些操作的最惯用的方法是什么? 是否有适用的设计模式?
3回复

对象池设计模式的Python实现

我需要一个Object Pool ,而不是自己实现它,我想我应该去找一个现成的并且经过测试的Python库。 我发现有很多其他人正在寻找,但是没有得到很多直接的答案,因此我将其带到了Stack Overflow。 就我而言,我有大量线程(使用threading模块),这些threading有时需
3回复

Python观察者设计模式[关闭]

我有两个问题: 我正在尝试在Python中实现Observer设计模式。 最简单的实现是什么? 我需要它来观察我正在构建的渲染农场中的机器状态。 那里有没有好的Python设计模式书?