【问题标题】:How to change unique_together error message in django model?如何更改 django 模型中的 unique_together 错误消息?
【发布时间】:2023-01-07 16:22:47
【问题描述】:

模型:

class MyModel(models.Model):
    field1 = models.CharField(max_length=50)
    field2 = models.CharField(max_length=50)

    class Meta:
        unique_together = ('field1', 'field2')

错误:UNIQUE 约束失败:field1,field2

我想将错误消息更改为 {'field2': 'This value is already exist'}

或者

如何覆盖 Django 模型中的 unique_error_message()?

我试试这个:

def unique_error_message(self, model_class, unique_check):
    return ValidationError(message='My custom error message')

但是没有用。

【问题讨论】:

标签: python django django-models


【解决方案1】:

我认为一种解决方案可以在 save 方法中捕获错误并引发任何你想要的:

from django.db import IntegrityError


class MyModel(models.Model):
    field1 = models.CharField(max_length=50)
    field2 = models.CharField(max_length=50)

    class Meta:
        unique_together = ('field1', 'field2')

    def save(self, *args, **kwargs):
        try:
            return super().save(*args, **kwargs)
        except IntegrityError as err:
            if "unique constraint" in err.args[0]:
                # raise what you want

【讨论】:

    猜你喜欢
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 2019-05-27
    • 2016-01-12
    • 2010-12-27
    相关资源
    最近更新 更多