由于self.object为None,Django get_absolute_url()在Generic Views中失败

时间:2012-12-09 06:34:41

标签: django views django-class-based-views

所以我一直在遇到这个问题,我的基于类的编辑(CreateView和UpdateView)视图无法在随机选择的模型上一致地重定向,说get_absolute_url没有定义,即使它是针对那些模型的。我在实际的基于类的视图中做了一些调试,我意识到这是因为在get_success_url()方法中,self.object是None,但运行self.get_object()会返回正确的对象。我很好奇为什么self.object会没有,但self.get_object会在这种情况下工作,我知道如何解决这个问题,但我觉得我可能不应该这样做可能意味着我的过程的一部分是不正确的,虽然我不知道是什么,因为我正在编写简单模型,定义get_absolute_url并在我的CreateView和UpdateViews中设置模型和form_class。有没有人遇到过这个问题?

1 个答案:

答案 0 :(得分:0)

我刚才意识到问题是我在我的ModelForm中为这些类重写了保存,虽然我保存了对象,但我没有返回它们。返回他们解决了这个问题。看一下ModelFormMixin的form_valid,向我展示了解决方案。