在post.save()上传递Django中的多个url参数

时间:2016-05-23 01:11:55

标签: django django-models django-templates django-views

我无法相信我仍在努力解决这些简单的事情!我需要在form.save()上传递多个url参数并重定向到我的详细信息视图,但是我被困在愚蠢而浪费了几个小时,请帮忙。我已经包含了网址以及详细信息和列表视图。谢谢你的帮助。

post_detail view

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 view

我删除了所有试用版代码,只留下有效的内容,即 - 它会发布,但不会重定向。

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'),

2 个答案:

答案 0 :(得分:1)

您需要使用main(): Failed opening required 'http://localhost/fbintegration/vendor/autoload.php' (include_path='.;C:\php\pear') ,而不是redirect,并且需要传递值以填充网址。

render

答案 1 :(得分:0)

也许你可以使用重定向的django内置库, 只需通过&#34; from django.shortcuts import redirect&#34; 你这样做:

return redirect('url-name',{'posts': posts, 'form': form})
希望这会有所帮助。