如何在Django中创建新帖子和编辑帖子的通用视图

如何在Django中创建新帖子和编辑帖子的通用视图,django,django-forms,django-views,django-errors,Django,Django Forms,Django Views,Django Errors,我为一个帖子制作了一个模型,并且必须制作一个表格来接受那个帖子。我使用下面给定的视图生成一个表单,用于创建新表单和编辑表单(如果存在) 如果post存在,那么将有一个有效的post\u id,我将选择正确的post对象并显示填写字段的表单,但是如果没有post\u id,那么我将生成一个新的空白表单 然而,我得到了一个错误 post_form()正好接受2个参数(给定1个) 我做错了什么 def post_form(request,post_id): context_instanc

我为一个帖子制作了一个模型,并且必须制作一个表格来接受那个帖子。我使用下面给定的视图生成一个表单,用于创建新表单和编辑表单(如果存在)

如果post存在,那么将有一个有效的post\u id,我将选择正确的post对象并显示填写字段的表单,但是如果没有post\u id,那么我将生成一个新的空白表单

然而,我得到了一个错误

  • post_form()正好接受2个参数(给定1个)
我做错了什么

def post_form(request,post_id):

    context_instance=RequestContext(request)

    if post_id:
        post = get_object_or_404(Post, pk=post_id)    
    else:
        #if the user is authenticated then pass the user object
        if request.user.is_authenticated():    
            post = Post(creator=request.user)
        else:
            post = Post()

    if request.method == 'POST':        
        if 'save' in request.POST:
            form = PostForm(request.POST, instance = post)
            if form.is_valid():
                form.save()
                return redirect(post)

    # Instantiate an empty form with the given user          
    else:
        form = PostForm(instance = post)

    return render_to_response('forum/post.html', {'form':form}, context_instance)

看起来您需要
post\u id

def post_form(request, post_id=None):
    ...

看起来您需要
post\u id

def post_form(request, post_id=None):
    ...

Sachin,阅读更多关于Python的教程,特别是关于必选参数*args和**kwargs的教程。@其次,我只是Django开发的初学者,但我迫切需要用Django完成一个项目。对我来说,唯一的选择就是阅读一些好的教程,然后进行点击和试用。但是我一直找不到一些好的教程,你能给我推荐一些吗?Sachin,阅读更多关于Python的教程,特别是关于必选参数*args和**kwargs。@其次,我只是Django开发的初学者,但我迫切需要用Django完成一个项目。对我来说,唯一的选择就是阅读一些好的教程,然后进行点击和试用。但是我一直找不到好的教程,你能给我推荐一些吗?