2011-11-12 52 views
1

私は投稿用のモデルを作成し、その投稿を受け入れるためのフォームを作成する必要があります。私は、新しいものを作成し、存在する場合は編集するためのフォームを生成するために、以下のビューを使用しています。新しい投稿を作成してDjangoで編集するための共通の表示方法

有効なpost_idが存在する場合は、正しい投稿オブジェクトを選択してフィールドを埋め込んだフォームを表示しますが、post_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) 

答えて

1

あなたはpost_id

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

サチンのデフォルト値を必要とするように見える、特に必須およびオプションの引数、引数*と** kwargsから上、Pythonの上のより多くのチュートリアルをお読みください。 –

+0

@second私はちょうどDjango開発の初心者ですが、私は緊急にDjangoでプロジェクトを完了する必要があります。私のための唯一の選択肢は、いくつかの良いチュートリアルを読んでからヒットして試してみることです。しかし、私はいくつかの良いチュートリアルを見つけることができませんでした、あなたは私にいくつか提案できますか? – Sachin

関連する問題