我有一个unique_together
约束的模型。
class Postit(models.Model):
"""Represents a single post-it."""
x_axis = models.PositiveIntegerField(_('X axis'))
y_axis = models.PositiveIntegerField(_('Y axis'))
content = models.CharField(_('Content'), max_length=140, default='')
class Meta:
unique_together = ('x_axis', 'y_axis')
如果我使用表单创建新的帖子,则会检查约束,如果发生冲突,则会在non_field_errors
属性中列出错误。细
我的问题是我想根据表单错误的类型启动不同的操作。如果存在唯一约束错误,我想要一个特定的操作,而对于任何其他类型的错误,我想要另一个操作。
鉴于我的应用程序将以多种语言翻译,如何因为约束或其他原因而知道表单是否无效?
答案 0 :(得分:0)
请记住,如果您只想查看non_field_errors
,就可以翻译您正在比较的字符串。
from django.utils.translation import ugettext_lazy as _
if _('Some error text') in self._errors['__all__']:
# do something
但这并不是最优雅的解决方案。您最好的办法是在unique_together
或Model.clean
中自行验证Model.validate_unique
约束,并作出相应的回应。