我想將用戶重定向到他們在提交後創建的最新文章。Django重定向到最新創建的文章
該網址不使用身份證,但slu how我怎麼能做到這一點?我當時就想,這樣的事情:
views.py
def article_id(request, slug):
context = {'article_id': get_object_or_404(Article, slug=slug)}
return render(request, 'article_id.html', context)
@login_required(login_url='/user')
def article_ajouter(request):
if request.method == 'POST':
form = ArticleForm(request.POST, request.FILES)
if form.is_valid():
save_it = form.save()
save_it.user = request.user
save_it.save()
object = Article.objects.get(article_id)
redirect(object, permanent=True) #I don't know if I am completely mistaken.
else:
form = ArticleForm()
context = {'form':form}
return render(request, 'article_ajouter.html', context)
爲了做到這一點重定向有什麼建議?
---- ---- UPDATE
文/ urls.py
url(r'^(?P<slug>[-\w\d]+)/$', views.article_id, name="article_detail"),
文/ views.py
if form.is_valid():
save_it = form.save()
save_it.user = request.user
save_it.save()
return redirect('article_detail', article_id=save_it.slug)
我試過了,但是我正在爲這個錯誤信息'Reverse for'article_detail'帶有參數'()'和關鍵字參數'{'article_id':'test-article-two'}'找不到。 1個模式嘗試:['article /(?P [ - \\ w \\ d] +)/ $']'爲什麼是這樣?我爲我的帖子添加了更新,以瞭解我是如何做到的。 –
Lindow
發現它,像這樣返回重定向('http://.../article/'+ str(save_it.slug))'',但想知道是否有一種方法,我不應該添加url如果我更改域名,我不想更改所有網址。 – Lindow
對不起,用slug代替article_id,我已經更正了答案。 –