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

无法完成数据添加和页面跳转。Django2.1.7,python是3.6.5

edit_page

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Edit page</title>
</head>
<body>
<form action="{% url 'blog:edit_action'}" method="post">

    <label>文章标题
    <input type="text" name="title"/>
        </label>
<br/>
    <label>文章内容
    <input type="text" name="content"/>
        </label>
<br/>
    <input type="submit" value="提交">
</form>
</body>
</html>


views.py

from django.shortcuts import render
from django.http import HttpResponse

from . import models

def index(request):
    articles = models.Article.objects.all()
    return render(request, 'blog/index.html', {'articles': articles})
def article_page(request,article_id):
   article= models.Article.objects.get(pk= article_id)
   return render(request, 'blog/article_page.html', {'article':article})
def edit_page(request):
  return render(request, 'blog/edit_page.html')
def edit_action(request):
  title = request.post.get('title', 'TITLE')
  content = request.post.get('content', 'CONTENT')
  models.Article.objects.create(title=title, content=content)
  articles = models.Article.objects.all()
  return render(request, 'blog/index.html', {'articles': articles})

urls.py

from django.urls import path,include

from. import views
app_name = 'blog'
urlpatterns = [
    path('index/', views.index),
    path('article/<int:article_id>', views.article_page, name='article_page'),
    path('edit/', views.edit_page, name='edit_page'),
    path('edit/action', views.edit_action, name='edit_action'),

]


正在回答

3 回答

你的POST小写了

0 回复 有任何疑惑可以回复我~
    path('edit/', views.edit_page, name='edit_page'),
   path('edit/action', views.edit_action, name='edit_action'),

edit/,要么加$,要么换一个edit_one/action,应该就可以了

2 回复 有任何疑惑可以回复我~
<!--edit_page.html-->
<form action="{% url 'blog:edit_action' %}" method="post">
    {% csrf_token %}
        <label>文章标题
            <input type="text" name="title" value="{{ article.title }}"/>
        </label>
        <br/>
        <label>文章内容
            <input type="text" name="content" value="{{ article.content }}"/>
        </label>
    <br>
    <input type="submit" value="提交">
</form>
#没看出来,晒出我的,希望有帮助
#views.py

def myblog(request):
    articles = models.Article.objects.all()
    return render(request,'myblog1.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):
        return render(request,'edit_page.html')
 
def edit_action(request):
    title = request.POST.get('title','TITLE')
    content = request.POST.get('content','CONTENT')
    models.Article.objects.create(title=title,content=content)
    articles =models.Article.objects.all()
    return render(request,'myblog1.html',{'articles':articles})
    
    
 #urls.py
from django.urls import path,re_path
from . import views

app_name='blog1'

urlpatterns = [
    re_path('^app/$',views.myblog,name='first-url'),

    re_path('^article/(?P<article_id>\d+)/$', views.article_page,name='article_page'),

    re_path('^edit/(?P<article_id>\d+)$',views.edit_page,name='edit_page'),

    re_path('^edit/action/$',views.edit_action,name='edit_action'),
]
0 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

无法完成数据添加和页面跳转。Django2.1.7,python是3.6.5

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