如何返回article——page详情页
老师 你好 使用render渲染提交的修改文章页面,不能直接到文章详情页地址,也就是在edit/action 中
如何返回article——page详情页
老师 你好 使用render渲染提交的修改文章页面,不能直接到文章详情页地址,也就是在edit/action 中
如何返回article——page详情页
2019-04-19
和前一节一样,需要重定向一下。
from django.shortcuts import render, redirect, reverse
def edit_action(request):
title = request.POST.get('title', 'TITLE')
content = request.POST.get('content', 'CONTENT')
article_id = request.POST.get('article_id', 'ARTICLE_ID')
if (title != 'TITLE') and (article_id == '0'):
models.Article.objects.create(title=title, content=content)
articles = models.Article.objects.all()
return redirect(reverse('blog:index'), {'articles': articles})
elif article_id != 'ARTICLE_ID':
article = models.Article.objects.get(pk=article_id)
article.title = title
article.content = content
article.save()
# 在这里重定向一下,reverse函数需要传进去文章的id
return redirect(reverse('blog:article_page',kwargs={'article_id': article_id}), {'article': article})from django.shortcuts import render
from blog import models
# 引入请求响应包
# from django.http import HttpResponse
# Create your views here.
# Django 中每一个请求都由一个函数处理,参数默认约定 response
def index(request):
# return HttpResponse('Hello World!')
articles = models.Article.objects.all()
return render(request, 'index.html', {'articles': articles})
def article_page(request, article_id):
article = models.Article.objects.get(pk=article_id)
return render(request, 'article_page.html', {'article': article})
def edit_page(request, article_id):
if str(article_id) == '0':
return render(request, 'edit_page.html')
article = models.Article.objects.get(pk=article_id)
return render(request, 'edit_page.html', {'article': article})
def edit_action(request):
title = request.POST.get('title', 'TITLE')
content = request.POST.get('content', 'CONTENT')
article_id = request.POST.get('article_id', '0')
if article_id == '0':
models.Article.objects.create(title=title, content=content)
articles = models.Article.objects.all()
return render(request, 'index.html', {'articles': articles})
article = models.Article.objects.get(pk=article_id)
article.title = title
article.content = content
article.save()
return render(request, 'article_page.html', {'article': article})举报