反向视图失败,因为参数是 None
reverse for view fails because argument is None
在tables.py中,我导入了django-tables2
class CarownerTable(tables.Table):
...
Car_registration=tables.LinkColumn('register_docs', args =[A('register__id')], text='View Register', orderable=False)
我的 urls.py 看起来像这样,
url(r'^register_docs/$', views.register_docs, name='register_docs' ),
url(r'^register_docs/(?P<docid>(\d)+)$', views.register_docs, name='register_docs' ),
和视图
def register_docs(request, docid=None):
#This view allows for the display of the pdf file
if docid is None:
#this line here loads a default image
doclink = '........./Car/Misc/noImageOnFile.pdf'
return HttpResponse(doclink, content_type="application/pdf")
else:
register_doc_path = Register.objects.get(pk=docid).register_File_Path
register_doc_data = open(register_doc_path, "rb").read()
t = loader.get_template('carmanager/display_docs.html')
variables = RequestContext(request, {'file':register_doc_data})
output = t.render(variables)
return HttpResponse(register_doc_data, content_type="application/pdf")
问题是当我加载结果时,某些对象没有附加文档。导致这个
Reverse for 'register_docs' with arguments '(None,)' and keyword arguments '{}' not found. 2 pattern(s) tried: ['carmanager/register_docs/(?P<docid>(\d)+)$', 'carmanager/register_docs$']
我尝试创建了两个 url 一个接受参数,一个不接受参数,但它仍然不允许 table 加载那些没有参数的人。即使无法加载汽车登记文件,我也希望两者都加载。
因此,如果您的某些记录缺少 ags 值,则解决方案是不使用 link列。
如果您需要在 django-tables2 中显示信息,其中某个列可能包含或可能不包含 url link 所需的信息,请使用
templateColumn
例如
templateRegister = tables.TemplateColumn(template_name="carmanager/registertemplate.html")
registertemplate.html 应该是这样的
<a {% if record.register__id %} target="_Blank" href="/carmanager/register_docs/{{record.register__id}}"> View Register {%else%} > No register {%endif%}</a>
在tables.py中,我导入了django-tables2
class CarownerTable(tables.Table):
...
Car_registration=tables.LinkColumn('register_docs', args =[A('register__id')], text='View Register', orderable=False)
我的 urls.py 看起来像这样,
url(r'^register_docs/$', views.register_docs, name='register_docs' ),
url(r'^register_docs/(?P<docid>(\d)+)$', views.register_docs, name='register_docs' ),
和视图
def register_docs(request, docid=None):
#This view allows for the display of the pdf file
if docid is None:
#this line here loads a default image
doclink = '........./Car/Misc/noImageOnFile.pdf'
return HttpResponse(doclink, content_type="application/pdf")
else:
register_doc_path = Register.objects.get(pk=docid).register_File_Path
register_doc_data = open(register_doc_path, "rb").read()
t = loader.get_template('carmanager/display_docs.html')
variables = RequestContext(request, {'file':register_doc_data})
output = t.render(variables)
return HttpResponse(register_doc_data, content_type="application/pdf")
问题是当我加载结果时,某些对象没有附加文档。导致这个
Reverse for 'register_docs' with arguments '(None,)' and keyword arguments '{}' not found. 2 pattern(s) tried: ['carmanager/register_docs/(?P<docid>(\d)+)$', 'carmanager/register_docs$']
我尝试创建了两个 url 一个接受参数,一个不接受参数,但它仍然不允许 table 加载那些没有参数的人。即使无法加载汽车登记文件,我也希望两者都加载。
因此,如果您的某些记录缺少 ags 值,则解决方案是不使用 link列。
如果您需要在 django-tables2 中显示信息,其中某个列可能包含或可能不包含 url link 所需的信息,请使用
templateColumn
例如
templateRegister = tables.TemplateColumn(template_name="carmanager/registertemplate.html")
registertemplate.html 应该是这样的
<a {% if record.register__id %} target="_Blank" href="/carmanager/register_docs/{{record.register__id}}"> View Register {%else%} > No register {%endif%}</a>