为了账号安全,请及时绑定邮箱和手机立即绑定

如何返回article——page详情页

老师  你好   使用render渲染提交的修改文章页面,不能直接到文章详情页地址,也就是在edit/action 中  


如何返回article——page详情页   


正在回答

2 回答

和前一节一样,需要重定向一下。

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})


0 回复 有任何疑惑可以回复我~
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})


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
django入门与实践
  • 参与学习       65159    人
  • 解答问题       869    个

手把手带你进入Django开发的大门,充分领略Django的魅力

进入课程

如何返回article——page详情页

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信