如何返回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})
举报