每次我试图通过表单编辑任何条目时,它都会给出属性错误。 我只有一个模型是BlogPost 型号.py
from django.db import models
# Create your models here.
class BlogPost(models.Model):
""" A title and text for a blog entry"""
title = models.CharField(max_length=200)
text = models.TextField()
date_added = models.DateTimeField(auto_now_add=True)
def __str__(self):
""" return a string representation of the model."""
return self.title
这是视图文件 视图.py
from django.shortcuts import render, redirect
from .models import BlogPost
from .forms import BlogPostForm
def edit_post(request, post_id):
""" edit an entry"""
title = BlogPost.objects.get(id=post_id)
post = title.text
if request.method != 'POST':
form = BlogPostForm(instance=post)
else:
form = BlogPostForm(instance=post, data=request.POST)
if form.is_valid():
form.save()
return redirect('blogs:index', post_id=title.id)
context = {'title': title, 'post': post, 'form': form}
return render(request, 'blogs/edit_post.html', context)
这是编辑后文件 编辑_邮政.html
{extends 'blogs/base.html'}
{% block content %}
<p>Edit Form:</p>
<p>{{ title }}:</p>
<form action="{% url 'blogs:edit_post' title.id %}" method="POST">
{% csrf_token %}
{{ form.as_p }}
<button name="submit">Save changes</button>
</form>
{% endblock content %}
表单.py
from django import forms
from .models import BlogPost
class BlogPostForm(forms.ModelForm):
class Meta:
model = BlogPost
fields = ['title', 'text']
labels = {'title':'Title', 'text': 'Post'}
widgets = {'text': forms.Textarea(attrs={'cols': 80})}
网址.py
# defines urls patterns for the blogs app
from django.urls import path
from . import views
app_name = 'blogs'
urlpatterns = [
# Home page
path('', views.index, name='index'),
# To add new post
path('new_post/', views.new_post, name='new_post'),
# To edit post
path('edit_post/<int:post_id>/', views.edit_post, name='edit_post'),
]
我使用的是Django 2.2.6和python 3.7.4。你知道吗
我想我的URL模式或者请求的路径有问题。你知道吗
这就是它产生的错误
TypeError at /edit_post/1/
edit_post() got an unexpected keyword argument 'post_id'
Request Method: GET Request URL: http://localhost:8000/edit_post/1/ Django Version: 2.2.6 Exception Type: TypeError Exception Value:
edit_post() got an unexpected keyword argument 'post_id'
Exception Location: C:\Users\nouma\Desktop\blog_folder\ll_env\lib\site-packages\django\core\handlers\base.py in _get_response, line 113 Python Executable: C:\Users\nouma\Desktop\blog_folder\ll_env\Scripts\python.exe Python Version: 3.7.4 **
我有我的答案。问题是在视图文件中我给出了不必要的论证。 i-e公司 返回重定向('博客:索引'邮政编码'=标题id) 第二个论点是不需要的
相关问题 更多 >
编程相关推荐