gpt4 book ai didi

python - Django 。 View 中的 success_url 或模型中的 get_absolute_url() 。如何正确使用它们?

转载 作者:太空宇宙 更新时间:2023-11-03 12:38:56 24 4
gpt4 key购买 nike

BaseUpdateView 使用的 ModelFormMixin 中,方法 get_success_url()url = self.object.get_absolute_url ()因此,我们不需要在 View 中编写 success_url = reverse_lazy('blablabla'),而只需在模型中确定 get_absolute_url() 方法即可。但是 BaseDeleteView 使用的 DeletionMixin 不这样做,它需要 success_url

为什么?为什么不使这些方法相同?我必须为我的 DeleteView 重写 get_success_url,所以它现在正在使用 get_absolute_url(),如我所愿。

或者我是否无法在 View 中使用 success_url 正常工作?基本上,我需要的是反转可通过 ForeignKey 访问的模型的 URL,我现在这样做:

model Child (models.Model):
    parent = models.ForeignKey (Parent)
    def get_absolute_url (self):
        return reverse ('parent-detail', kwargs = {'pk': str (self.parent.pk)})

如何在 success_url 中完成相同的操作?我无法在 View 中写入 self.parent.pk

最佳答案

这如何适用于删除 View ? Django 如何重定向到不再存在的对象的详细信息页面?那根本没有意义;该页面应返回 404。

我也不明白为什么你认为你不能在 View 中引用父PK。你当然可以:

def get_success_url(self):
return reverse ('parent-detail', kwargs={'pk': self.object.parent.pk})

关于python - Django 。 View 中的 success_url 或模型中的 get_absolute_url() 。如何正确使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31274269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com