python - 测试 DataField 以仅接受过去的数据。清洁(),Django,断言错误
问题描述
我正在尝试编写测试以检查我的 DataField 是否仅接受过去的数据,但它不能正常工作。
表格.py
class BookForm(PermissionRequiredMixin, ModelForm):
class Meta:
model = Book
fields = ['title', 'author', 'summary', 'tag', 'genre', 'language', 'book_format', 'read_date']
def clean_read_date(self):
data = self.cleaned_data['read_date']
#Check date is not in future.
if data > datetime.date.today():
raise ValidationError('Invalid date - book read date in future!')
return data
test._forms.py
class BookFormTest(TestCase):
def test_book_form_date_in_futuret(self):
date = datetime.date.today() - datetime.timedelta(days=10)
form_data = {'read_date': date}
form = BookForm(data=form_data)
self.assertTrue(form.is_valid())
有谁知道为什么我的 clean_read_data 不起作用?我知道可能我可以用不同的方式做到这一点,但我读到使用 clean() 是检查 DateField 是在未来还是过去的最好方法。
解决方案
推荐阅读
- excel - 如何使用索引函数定位两个相邻的单元格并返回值
- c# - 当我在工作表中写入日期时,C# Excel 会更改日期格式
- javascript - 使用基于文本的javascript设置元素的颜色
- javascript - 将导入的对象从父级传递给子级作为道具与在这些子级中导入该对象的权衡是什么?
- vue.js - Vuex getter 总是返回 null
- python - 对象和引用的 ID 函数
- c# - 如何在 Unity 中基于相机视口将纹理应用于材质
- php - Redis 和 symfony PSR16 缓存
- python - 如何将字段的“描述”放在表单字段中?
- php - 如何处理可排队通知上的失败作业