【发布时间】:2022-01-19 16:36:58
【问题描述】:
在我的 Django 应用程序(仅限 DRF)中,我正在尝试创建一个新对象,其中一个字段设置如下:
resource_name = models.CharField(verbose_name="Resource Name", blank=False, null=False, max_length=50, unique=True)
如果我现在尝试两次创建具有相同资源名称的对象,我总是会遇到以下异常:
django.db.utils.IntegrityError: (1062, "重复条目 'test_ressource123' 用于键 'resource_name'")
有什么好的解决方案可以适用于所有这些情况吗? 简单地做出对象已经存在的 API 响应会很棒,有点奇怪这还不是 DRF 的内置。我可以覆盖序列化程序的 def create 函数调用吗?欢迎任何好的建议。
【问题讨论】:
-
您可以在您的序列化程序类中编写验证。
-
我已经遇到过这个想法,但是如果你有很多模型,这有点烦人,因为你必须访问所有序列化程序的每个潜在的唯一字段,我希望这可以处理一些更通用的装饰器或这样可以获取实例,但这仍然不能解决何时检查哪个模型的问题。
标签: django django-rest-framework