" No URL to redirect to "如何重定向到相同的页面



我正在使用由用户填充的表单。forms.py的保存方法如下:

def save(self, commit=True):
    instance = super(LocationForm, self).save(commit=False)
    if instance.location_id:
       instance.save()
    else:
        new_location=Location.objects.create(name=self.cleaned_data['name'])
        instance.location=new_company
        instance.save()
    return instance 

当我点击更新时数据被保存在数据库中,但我得到一个错误

没有指向错误的URL

视图:

class LandingView(CreateView):
    model = Review
    form_class = LocationForm
    template_name="core/index.html"

models.py -我创建了一个get_absolute_url函数

from django.core.urlresolvers import reverse
  def get_absolute_url(self):
     return reverse ('index', args=[str(self.id)])

所以在url中我尝试了这个

url(r'^$', core.views.LandingView.as_view(success_url="success"), name='index'),

但是,如果我想让它重定向到原始页面,比如"回到我来自的地方",我该怎么做?

I tried

url(r'^$', core.views.LandingView.as_view(success_url=""), name='index'),

url(r'^$', core.views.LandingView.as_view(success_url=reverse('index')), name='index'),

url(r'^$', core.views.LandingView.as_view(success_url=reverse("")), name='index'),

但是这些都不起作用!

EDIT这个url可以工作,我不需要def_get_absolute_url

url(r'^$', core.views.LandingView.as_view(success_url="/"), name='index'),

我相信有一种方法来重定向在一个类为基础的视图像你的,但这里是我如何做到这一点,简单地一旦表单被保存,然后它重定向。你的save方法能工作吗我喜欢你的方法但我不确定编辑你的save方法是不是最好的方法,而不是在视图中获取实例,用已经提交的数据预填充表单比如在初始创建表单中。还有什么问题请告诉我。

views.py

 from app.forms import LocationForm
      def Landing_View(request)
        if request.method == 'POST':
          form = LocationForm(request.POST)
          if form.is_valid():
             form.save()
             return HttpResponseRedirect('/your_url/')
          else:
             print form.errors()
        else:
          form = LocationForm()
         return render (request, 'template.html', {'form':form},)

urls.py - Landing_View的URL,然后在保存

时重定向到这个URL
  url(r'^your_url/', app.views.Landing_View, name='your_url'),

相关内容

  • 没有找到相关文章

最新更新