2016-05-23 30 views
0

我不敢相信我仍然在爲簡單的東西而努力!我需要在form.save()上傳遞多個url參數並將其重定向到我的詳細信息視圖,但我堅持愚蠢,並且浪費了幾個小時,請幫助。我已經包含了網址以及詳細信息和列表視圖。感謝您的幫助。在Django上傳遞多個url參數post.save()

post_detail視圖

def post_detail(request, year, month, day, post): 
    posts = Post.published.all() 
    post = get_object_or_404(Post, slug=post, status='published', publish__year=year, publish__month=month, publish__day=day) 
    return render(request, 'press/post_detail.html', {'post': post, 'posts': posts}) 

post_new視圖

我剝奪我所有的審判代碼出來,只留下什麼作品,這是 - 它會發布,但不會重定向。

def post_new(request): 
    posts = Post.published.all() 

    if request.method == 'POST': 
     form = PostForm(request.POST) 

     if form.is_valid(): 
      post = form.save(commit=False) 
      form.save() 
      form.save_m2m() 
      return render(request, 'press/post_detail.html', {'post': post}) 
    else: 
     form = PostForm() 

    return render(request, 'press/post_edit.html', {'posts': posts, 'form': form}) 

detail_view網址

url(r'^press/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/(?P<post>[-\w]+)/$', views.post_detail, name='post_detail'), 

回答

1

您需要使用redirect而不是render,並且您需要向其傳遞值以填充URL。

return redirect('post_detail', kwargs={'year': post.publish.year, 'month': post.publish.month, 'day': post.publish.day, 'post': post.slug}) 
0

也許你可以使用內置的Django的庫,它是重定向, 只是 「from django.shortcuts import redirect」 導入它,你這樣做:

return redirect('url-name',{'posts': posts, 'form': form}) 

希望這會有所幫助。

+0

https://docs.djangoproject.com/en/1.9/topics/http/shortcuts/#redirect – FeFiFoFu