2014-05-22 21 views
0

这里是views.py在django的html页面中无法识别url变量。是越来越生成的HTML页面动态

def home (request): 
     now = datetime.datetime.now() 
     t = get_template('index.html') 
     html = t.render(Context({'current_date': now})) 
     return HttpResponse(html) 

    def run(request, id): 
    table="" 
    table + = "<table> <tr> <td> <a href= \" /run/{{ id }} \" > "+ linkname + "</a></td></tr></table>" 
    return HttpResponse(table) 

这里是urls.py

from mysite.views import run 
    urlpatterns = [ 
     url(r'^home/$',home ,), 
     url(r'^run/(?P<id>)$',run), 
    } 

在主页用户输入参数,运行方法被调用,流程,参数,根据给定参数和生成表的响应动态生成表。该表包含一个链接,我试图传递一个参数{{id}}。但是,当我点击表格中的链接时,它会显示以下错误: 当前网址运行/ {{id}}与任何这些网址都不匹配。

我是新来的Django,任何人都可以帮我

+0

为什么你不在'run'函数中使用HTML的实际模板? –

回答

1

这不是模板,这是Python字符串。所以,你需要使用字符串fromat

尝试这种方式,

table + = "<table> <tr> <td> <a href= \" /run/{0} \" > "+ linkname + "</a></td></tr></table>".format(id) 

另一种方式:

from django.template import Context, Template 

def run(request, id): 
    table="" 
    table + = "<table> <tr> <td> <a href= \" /run/{{ id }} \" > "+ linkname + "</a></td></tr> </table>" 
    t = Template(table) 
    c = Context({"id": id}) 
    return HttpResponse(t.render(c)) 

注:我没有找到linkname变量。所以Django会抛出一个错误。 Doc is here

+0

雅我忘了提及linkname变量。它简单的python变量。我会检查并告诉你它是否有效 – user3214392