【发布时间】:2017-05-13 10:03:03
【问题描述】:
朋友们好,我需要帮助,
我是 python 和 Django 的新手
这次我正在构建我的应用程序,我正在尝试使用on_delete=models.PROTECT 它工作正常,但我想替换我的模板ProtectedError 来获取任何消息。
我该怎么做?
我有这样的事情:
集团模型
class grupos(models.Model):
nombre_grupo = models.CharField(max_length=100)
nombre_puerto = models.ForeignKey(puerto, on_delete=models.PROTECT)
def __unicode__(self):
return self.nombre_grupo
def __str__(self):
return self.nombre_grupo
如您所见,有一个依赖关系,如果我创建了 puerto,它不会让我删除 puerto,这很好,但我得到了模板错误,我想要一个 msg那个。
这是我的 puerto delete 视图:
波多黎各 views.py
def delete(request, id):
# I want the message here..... (such as messages.warning or something)
note = get_object_or_404(puerto, pk=id).delete()
messages.error(request, 'This puerto has been deleted.')
return redirect('/puertot')
例如,我想要messages.warning(request, 'You can't delete this because it's being used by grupos')之类的东西
模板错误:
ProtectedError at /delete/59/(“无法删除模型的某些实例 'puerto' 因为它们是通过受保护的外键引用的: 'grupos.nombre_puerto'", ]>)
我正在想办法解决这个问题,但不知道......
我该怎么做?
谢谢...!
【问题讨论】:
-
更新了我的答案。请现在检查并告诉我现在是否更好地处理 ProtectedError 异常?
-
是的!按预期工作,谢谢! @PrakharTrivedi