Django 获取表单 __init__ 中字段的值

问题描述 投票:0回答:2

在进行更新之前我需要获得某个字段的值。 表格.py

class Form_Rol(forms.ModelForm):
     class Model:
         model = My_Model
         fields = "__all__"

     def __init__(self, *args, **kwargs):
         '''I want to do this'''
         value_coming_from_update = self.fields['name']
         print(value_coming_from_update)

输出.... 如何在 init 中打印实际值?

我无法在init中使用self.cleaned_data.get('name')。它给了我一个错误(AttributeError:'Form_Rol'对象没有属性'cleaned_data')

python django
2个回答
0
投票
直到使用数据实例化表单(也称为“绑定”)并且

cleaned_data

 返回 True 后,
is_valid()
才存在。所以根本不可能在
__init__
时间访问到它。

你能解释一下你想要实现什么目标吗?

粗略地猜测,您可能希望在保存 ModelForm 生成的对象之前对其进行进一步检查。你这样做的方法是

if form.is_valid():
    instance = form.save( commit=False)
    # further checking of instance...
    if instance.ok_to_save():
        instance.save()

0
投票

尝试: self.fields['name'].value 或者 self.fields['name'].value()

© www.soinside.com 2019 - 2024. All rights reserved.