Python Django将函数添加到模板中的按钮

Python Django将函数添加到模板中的按钮,python,django,Python,Django,我不知道如何将views.py中的函数添加到模板中的atribute操作中。 我想当我点击按钮,然后我的页面刷新,并添加评论到数据库 我的模板的一部分: <form action = '???' method = "post"> {{ formularz.as_p}} <input type="submit" value="Submit" /> </form> <form action = {% url addcomment t

我不知道如何将
views.py
中的函数添加到模板中的atribute操作中。 我想当我点击按钮,然后我的页面刷新,并添加评论到数据库

我的模板的一部分:

    <form action = '???' method = "post">
    {{ formularz.as_p}}
    <input type="submit" value="Submit" />
</form>
<form action = {% url addcomment topic year month day %} method = "post">
        {{ formularz.as_p}}
        <input type="submit" value="Submit" />
    </form>
AddComment
是我希望在按钮中使用的函数。
ArchiveNews
是在我选择新页面中的新闻时生成的

编辑
部分
url.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]}))
url(r'^news/$', ShowNewses),
url(r'^news/(?P<topic>.+)/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})', ArchiveNews),
url(r'^news/$,showNews),
url(r'^news/(?P.+)/(?P\d{4})/(?P\d{2})/(?P\d{2}),ArchiveNews),

我在这里更新了
views.py的一部分。我添加了
ShowNewses

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

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

我使用了url名称。我的实际文件: views.py

以及我的模板的一部分:

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

{{formularz.as_p}}
URL.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'),
url(r'^news/(?P.+)/(?P\d{4})/(?P\d{2})/(?P\d{2}),ArchiveNews),
url(r'^news/(?P.+)/(?P\d{4})/(?P\d{2})/(?P\d{2}),AddComment,name='AddComment'),
编辑:
我更新了我的文件

我使用了url名称。我的实际文件: views.py

以及我的模板的一部分:

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

{{formularz.as_p}}
URL.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'),
url(r'^news/(?P.+)/(?P\d{4})/(?P\d{2})/(?P\d{2}),ArchiveNews),
url(r'^news/(?P.+)/(?P\d{4})/(?P\d{2})/(?P\d{2}),AddComment,name='AddComment'),
编辑:

我更新了我的文件

您是否尝试过命名URL,然后使用。。。我试过你的方法:action={%url news.views.AddComment%}如果你能看一下我在views.py InvalidSyntax中的最后一行,但我不知道你的url.py文件中的对应行显示在哪里。另外,我不希望在url或“视图”的名称中看到点。相反,我认为您需要使用args=(主题,L[2],L[3],L[4]),而不是使用kwargs,但是您还需要提前使主题相等。您使用args的方式还可以,InvalidSyntax消失:)但是现在,我对TemplateSyntaxerRor有问题,请与{%url….}您是否尝试过命名url,然后使用…我尝试过您的方式:action={%url news.views.AddComment%}如果您可以查看我在views.py InvalidSyntax中的最后一行,但我不知道在您的url.py文件中向我们显示相应的行。此外,我不希望在url或“视图”的名称中看到点.相反,我认为您需要使用args=(主题,L[2],L[3],L[4]),而不是使用kwargs,但是您还需要提前使主题等于某个内容。您使用args的方式是可以的,InvalidSyntax消失:)但是现在,我对TemplateTeSyntaxerror有问题,请使用{%url….}我必须在url.py中创建新规则?与ArchiveNews相同的规则?我希望我的页面刷新和注释添加到数据库中。我必须在url.py中创建新规则?与ArchiveNews相同的规则?我希望我的页面刷新和注释添加到数据库中。AddComment的url充满了参数,但AddComment视图没有设置接受任何参数。它们需要匹配。我将其更改为AddComment(请求、主题、年、月、日):……但我现在遇到了相同的错误,如果你想保留所有这些参数,那么你需要将它们传递到模板,并将它们包含在{%url…%}标记中例如:{%url AddComment'a'2012 06 20%}你考虑过了吗?在render_to_响应的参数中包括主题、年、月、日,然后在模板中说{%url addcomment主题年、月、日%}。另外,我认为你需要在{%url…%}周围加上双引号为了html。你的AddComment url充满了参数,但你的AddComment视图不接受任何参数。它们需要匹配。我将其更改为AddComment(请求、主题、年、月、日):……但我现在遇到了相同的错误,如果你想保留所有这些参数,那么你需要将它们传递到模板并将它们包含在你的{%url…%}tag例如:{%url addcomment'a'2012 06 20%}你想过吗?在render_to_响应的参数中包括主题、年、月、日,然后在模板中,说{%url addcomment主题年、月、日%}。另外,为了html,我认为你需要在{%url…%}周围加上双引号。