Mic*_*rtz 9 python eclipse django
我正在执行基本的Django ModelForm创建/验证/保存操作.当在Eclipse调试器下运行代码时调用is_valid()并且在创建表单和调用is_valid()之后设置断点时,不会调用我的自定义清理方法.
我已经多次遍历Django基本代码,看起来ModelForm类上的错误字典从未设置为None,这会触发验证.我怀疑这是由于与调试器的交互访问ModelForm的_errors属性以显示在变量窗格中.
当我删除所有断点并让代码自然流动时,我可以通过发出print语句来证明自定义清理代码正在运行.
这是Django ModelForm设计中的一个缺陷,Eclipse问题还是我咆哮错误的树?
models.py
from django.db import models
class TestModel1(models.Model):
field1 = models.CharField(max_length=45)
field2 = models.IntegerField(default=2)
field3 = models.CharField(max_length=45, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)
forms.py
from order.models import TestModel1
from django.forms import ModelForm
class OrderTestForm(ModelForm):
def clean_field1(self):
return self.cleaned_data['field1']
def clean_field2(self):
return self.cleaned_data['field2']
class Meta:
model = TestModel1
Run Code Online (Sandbox Code Playgroud)
我的测试工具:
from forms import OrderTestForm
row = {'field1': 'test value', 'field2': '4', }
ff = OrderTestForm(row)
#ff.full_clean()
if ff.is_valid():
ff.save()
else:
print ff.errors
Run Code Online (Sandbox Code Playgroud)
Bra*_*don -1
如果你尝试:
from order.models import TestModel1
from django.forms import ModelForm
class OrderTestForm(ModelForm):
class Meta:
model = TestModel1
def clean_field1(self):
value = self.cleaned_data['field1']
print value
return value
def clean_field2(self):
value = self.cleaned_data['field2']
print value
return value
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4011 次 |
最近记录: |