我得到了一个带有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
属性中列出。很好。
我的问题是,我想根据表单错误的类型启动不同的操作。如果有一个唯一的约束错误,我想要一个特定的操作,对于任何其他类型的错误,我想要另一个操作。
考虑到我的应用程序将被翻译成几种语言,我如何知道表单是否因为限制或其他原因而无效?
发布于 2011-12-08 15:39:15
请记住,如果您只想检查non_field_errors
,则可以转换要比较的字符串。
from django.utils.translation import ugettext_lazy as _
if _('Some error text') in self._errors['__all__']:
# do something
不过,这并不是最优雅的解决方案。最好的方法是自己在Model.clean
或Model.validate_unique
中验证unique_together
约束,并做出相应的响应。
https://stackoverflow.com/questions/8432605
复制相似问题