1

テンプレートに関数を追加しviews.pyてアクションを割り当てる方法がわかりません。ボタンをクリックするとページが更新され、日付ベースにコメントが追加されます。

私のテンプレートの一部:

    <form action = '???' method = "post">
    {{ formularz.as_p}}
    <input type="submit" value="Submit" />
</form>

の一部views.py

def ShowNewses(request):
    newses = News.objects.filter(status = 'p')
    return render_to_response('news.html', {'news_set': newses})

def ArchiveNews(request,topic,year, month, day):
    news = News.objects.filter(date__year = int(year), date__month = int(month), date__day = int(day),topic = topic)
    comments = Comments.objects.all()
    formularz = CommentsForm()
    return render_to_response('knews.html', {'news': news[0],'comments': comments, 'formularz': formularz}) 

def AddComment(request):
    L = request.META['PATH_INFO'].split('/')
    if request.POST:    
    k = CommentsForm(request.POST)
    k.save()
    return HttpResponseRedirect(reverse('ArchiveNews', kwargs = {'request' = request, 'year' = L[3], 'month' = L[4], 'day' = L[5]}))

AddCommentボタンに欲しい機能です。 ArchiveNews新しいページに表示されるニュースを選択すると誘導されます。


の一部を編集urls.py

url(r'^news/$', ShowNewses),
url(r'^news/(?P<topic>.+)/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})', ArchiveNews),

ここの一部を更新しましたviews.py。追加しましShowNewsesた。

4

2 に答える 2

1

AddCommenturls.pyファイルに追加する必要があります。次に、アプリの名前が「myapp」であると仮定すると、テンプレートでこれを使用します。{% url myapp.views.AddComment %}

于 2012-06-22T01:04:35.303 に答える
0

URL名を使用しました。私の実際のファイル:views.py

def ArchiveNews(request, topic, year, month, day):
    print request.POST
    news = News.objects.filter(date__year = int(year), date__month = int(month), date__day = int(day),topic = topic)
    comments = Comments.objects.all()
    formularz = CommentsForm()
    return render_to_response('knews.html', {'news': news[0], 'comments': comments, 'formularz': formularz, 'topic': topic, 'year': year, 'month': month,'day': day})   


def AddComment(request,topic,year,month,day):
    print 'foo'
    if request.POST:
        k = CommentsForm(request.POST)
        k.save()
    return HttpResponseRedirect(reverse('ArchiveNews', args = (topic,year,month,day)))

そして私のテンプレートの一部:

<form action = {% url addcomment topic year month day %} method = "post">
        {{ formularz.as_p}}
        <input type="submit" value="Submit" />
    </form>

urls.py の一部:

url(r'^news/(?P<topic>.+)/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})', ArchiveNews),
url(r'^news/(?P<topic>.+)/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})', AddComment, name = 'addcomment'),

編集:ファイルを更新しました

于 2012-06-22T12:11:00.653 に答える