我已经设置了媒体根目录、媒体网址等,因此当我致电时该文件会显示
http://127.0.0.1:8000/media/something/somewhere/my_pdf.pdf
现在我想在模板中显示相同的文件(即对象或嵌入标签中的 PDF 以及其他一些内容)。我将路径传递给文件(即视图上下文中“media”之后的所有内容,例如:
def test_doc(request):`
p = r'something/somewhere/my_pdf.pdf'`
return render(request, 'documents/test.html', {'pdf':p})
Run Code Online (Sandbox Code Playgroud)
那么我必须在模板中添加什么内容?我试过
<object data="{{ MEDIA_URL }}{{ pdf }}">something</object>
Run Code Online (Sandbox Code Playgroud)
及其许多变体。我究竟做错了什么?
我写了一个函数将字典中的所有键转换为小写:
def lower_dict_keys(some_dict):
"""Convert all keys to lowercase"""
result = {}
for key, value in some_dict.items():
if type(key) == str:
result[key.lower()] = value
else:
result[key] = value
return result
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.然后我想,嗯,这在词典理解中会更优雅,所以这就是我提出的:
def lower_dict_keys2(some_dict):
return {key.lower(): value for key, value in some_dict.items() if type(key) == str}
Run Code Online (Sandbox Code Playgroud)
这仅适用于所有键都是字符串的情况.我有数字键,它们被丢弃:
d1 = {'A':'foo', 'b':'bar', 1:'zip'}
print(lower_dict_keys(d1))
>>>{'a': 'foo', 'b': 'bar', 1: 'zip'}
print(lower_dict_keys2(d1))
>>>{'a': 'foo', 'b': 'bar'}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:是否可以将此函数编写为字典理解?
我有一个数据库,其中日期表示为DD.MM.YY格式的字符串(不要问).我想通过尝试这个来找到列中的最新日期:
select max(to_date(my_date, 'DD.MM.YY')) from my_table;
Run Code Online (Sandbox Code Playgroud)
这给出了1999年的最新日期,但我知道专栏中有更晚的日期.我认为这是因为年份是YY.我怎样才能找到正确的日期?