我在models.py
中有以下模型:
@python_2_unicode_compatible
class Session(ModelCommon): # ModelCommon is an abstract Model which extends from models.Model with the fields name(CharField) and enabled(BooleanField).
"""
Model Session with foreign key to Model Event.
"""
event = models.ForeignKey(verbose_name=_('Event'), to=Event, default=None, null=False, blank=False)
start_datetime = models.DateTimeField(verbose_name=_('Session Starts'), default=None, null=False, blank=False)
end_datetime = models.DateTimeField(verbose_name=_('Session Ends'), default=None, null=False, blank=False)
available = models.BooleanField(verbose_name=_('Available'), default=True, null=False, blank=False)
price = models.DecimalField(verbose_name=_('Price'), max_digits=10, decimal_places=2,
validators=[MinValueValidator(0.00)],
default=None, null=False, blank=False)
当我测试我的模型时,如果price
为负数,则不应将其保存在数据库中,它不会像它应该的那样引发异常。在
test_models.py
:
最后,当我运行我的test_models.py
时,我得到以下消息:
Failure
Traceback (most recent call last):
self.assertRaises(Exception, lambda: self.session.save())
AssertionError: Exception not raised
调用
save()
不会触发验证。有关更多信息,请参阅validating objects上的Django文档。您可以改为调用full_clean
。在注意,您可以从代码中删除lambda并传递callable。捕捉更具体的},这也会更好。在
^{pr2}$ValidationError
而不是{相关问题 更多 >
编程相关推荐