gpt4 book ai didi

django - 如何在 django 中以两种不同的形式使用相同的 clean() 方法?

转载 作者:行者123 更新时间:2023-12-01 22:22:04 24 4
gpt4 key购买 nike

我有两个表单NewItem(ModelForm)EditItem(ModelForm)。我重写了 NewItem(ModelForm)clean() 方法来验证字段。我想在 EditItem(ModelForm) 中重复使用相同的 clean() 方法,以防用户尝试编辑和重新保存数据?有没有一种干净的方法可以实现这一目标,而无需复制和粘贴?

最佳答案

是的,您可以创建一个名为 FormCleanMixin() 的 mixin 类,它将包含两个表单之间通用的 clean() 方法。然后在你的 2 个表单中继承这个 mixin 类。

首先,创建 mixin 类,如下所示:

from django.forms import ModelForm

class FormCleanMixin(ModelForm):

def clean(self):
...
# your common code for 'clean()' here

现在,以两种形式继承这个 mixin 类,例如:

class NewItem(FormCleanMixin): # inherit the mixin

... # your code

class EditItem(FormCleanMixin): # inherit the mixin

... # your code

关于django - 如何在 django 中以两种不同的形式使用相同的 clean() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31798153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com