【发布时间】:2021-10-31 19:41:59
【问题描述】:
我正在检查一个模型实例是否已经存在,我是否想发送一条消息说“名称已经存在”。由于 def save() 中没有请求,有没有其他方法可以通过 Django 消息框架或其他方式发送消息??
def save(self, *args, **kwargs):
self.name = self.name
if Name.names.name_exists(self.name):
message = "You already have this name!" # want to send this message
print("not created")
else:
print("created")
super(Name, self).save(*args, **kwargs)
【问题讨论】:
-
我认为您不需要通过覆盖保存方法来检查对象名称是否存在。相反,您可以在创建新对象之前检查它,例如:
myObject = Object.objects.get(name=name_to_check)如果对象存在,则使用 django 消息 (from django.contrib import messages) 发送消息。如果不创建新对象。 -
覆盖保存方法不是您的意思的最佳做法?
-
对于这个特定的目标,是的,覆盖保存方法不是最好的主意(我认为)。您想在保存之前检查对象是否存在。然后在您的
object上调用.save()之前执行此操作。
标签: django django-models django-rest-framework django-templates django-messages