2017-02-13 3 views
0

これは私の最初のdjangoプロジェクトであり、終了するのは苦労しています。 私は編集ポストを機能させるために働いています。ユーザーがボタンをクリックすると、その記事のno(int)を送信し、noに関する情報を取得してページに表示します。ユーザーは同じフォームでその投稿を編集できます。ユーザーがsubmitをクリックすると、home.htmlにリダイレクトされます。Django 1.10:view関数()は2つの引数(1つが指定されています)を受け取ります

しかし、私が作った関数は、私が何の関数も使用していないのに2つの引数2つの引数を取る。ここで

これはarticle_no argは魔法の関数にその方法を見つけることができません

<form action="{% url 'blog:edit_article' %}" method="post" style="display: inline;"> 
    {% csrf_token %} 
    <input type="hidden" name="no" value="{{ item.no }}" /> 
    <button type="submit">edit></button> 
    </form> 
+0

しかし...その関数は、明らか* *二つの引数を取るん。 –

答えて

1

をedit_article.htmlする、値を送信しないdetail.htmlのフォームです

@login_required 
def edit_article(request, article_no): 
article = Article.objects.filter(pk=article_no) 
form = ArticleForm(request.POST, instance=request.article) 
if form.is_valid(): 
    form.save() 
    messages.add_message(request, messages.SUCCESS, _('Article correctly saved.')) 
    # If the save was successful, redirect to another page 
    redirect_url = reverse('blog/home.html') 
    return HttpResponseRedirect(redirect_url) 

else: 
    form = ArticleForm(instance=request.article) 

return (request, {'form': form}, context) 

views.pyですPOST送信を介して呼び出します。あなたは urlタグにそれを提供する必要があります。

{% url 'blog:edit_article' item.no %} 

これは、あなたがこのビュー/ビュー名に関連する適切な名前のグループとURLパターンを持っていることを、もちろん、前提としています。

0

あなたはこの機能について話している場合、それは複数のArgを受け取るし、それはあなたのビューが引数を必要とする場合は、引数を与えなければならない、あなたが話して、リクエストオブジェクト

def edit_article(request, article_no): 
... 
0

されませんがrecieves URLのtemplatetagで、次のように:

{%のURLのアカウント:detail_account「名=ユーザ名%}

関連する問題