首页 > 解决方案 > formModel中的django反向

问题描述

在我的views.py中,我有一个类接受(CreateView),在form_class中接受forms.py中的Testform

问题是当我在 forms.py 中使用 def save(...) 方法时,它正确保存了数据,但之后无法逆转

无论我尝试返回什么,它都会告诉我“没有要重定向到的 URL。要么提供一个 url,要么在模型上定义一个 get_absolute_url 方法。”

好的,所以我已经尝试过到处使用这种方法但没办法,它总是给我这个错误

标签: djangoreversemodelform

解决方案


这取决于您在创建新对象后要将用户重定向到哪里。

示例设置:

  • r'^mymodel/new/', name='mymodel_create'CreateView在 urls.py中配置了 url 。
  • r'^mymodel/:pk/', name='mymodel_detail'DetailView在 urls.py中配置了 url 。

您可以像这样定义 get_absolute_url :

class MyModel(Model):
    # field definitions...

    def get_absolute_url(self):
        return reverse('mymodel_detail', kwargs={'pk': self.pk})

然后创建一个新对象将重定向到 DetailView。


推荐阅读