2012-06-21 34 views
0

我不知道我怎么可以添加函数形式views.py在我的模板属性约操作添加功能按钮。 我想如果我点击按钮,然后我的页面刷新和评论添加到数据库。我的模板的Django的模板

部分:

<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的单方面是我想在我的按钮功能。当我选择的消息,这将是在新的页面

编辑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 ArchiveNews诱导

+0

你试过命名的网址,然后使用...

jcfollower

+0

网址我想用自己的方式:行动= {%URL news.views.AddComment%} 如果你可以请你看看我的views.py InvalidSyntax最后一行,但我不知道在哪里 – Tomek

+0

告诉我们urls.py文件中的相应行。此外,我不希望看到URL或“视图”名称中的点。 – jcfollower

回答

1

你需要将AddComment添加到您的urls.py文件中。然后,假设您的应用程序被命名为“MYAPP”你会在你的模板中使用这样的:{% url myapp.views.AddComment %}

+0

我必须创建在urls.py新规则?像ArchiveNews规则一样的规则?我想我的页面刷新和评论添加到数据库。 – Tomek

0

我用URL名称。我actualy文件: 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))) 

而且我的模板的一部分:urls.py的

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

部分:

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'), 

编辑: 我更新了我的文件

+0

您的AddComment网址已充满参数,但您的添加评论视图不接受任何参数。他们需要匹配。 – jcfollower

+0

我改变了它 AddComment(请求,主题,年,月,日):.... 但我已经得到了同样的错误 – Tomek

+0

现在,如果你想保持所有这些论点,那么你需要将它们传递给模板,包括他们在您的{%网址...%}例如标签 – jcfollower