Python中使用Django日期过滤器时遇到的问题
当我在过滤器中使用小时(H)时,如:
<p>{{ entry.date_added|date:'Y-m-d H:i ’ }}</p>
会报如下错误:
The format for date objects may not contain time-related format specifiers (found ‘H’).
去掉 H:i 后,错误消失
Python中使用Django日期过滤器时遇到的问题
因为是 Date, 只有年月日, 没有小时
我无法理解你的问题
看看 model 里定义的时间类型错了
看看你的 date_added是DatetimeField 还是 Datefield
见#3
models.DatetimeField
<=>
models.DateField
谢谢各位老哥
两位老哥思路是对的,但是我将 models.DateField 改为 models.DateTimeField 出现了新的错误,下面是报错
Internal Server Error: /topics/1/
Traceback (most recent call last):
File “d:\t_django\ll_env\lib\site-packages\django\core\handlers<a target=”_blank" href=“http://exception.py” rel=“nofollow noopener”>exception.py", line 35, in inner
response = get_response(request)
File “d:\t_django\ll_env\lib\site-packages\django\core\handlers<a target=”_blank" href=“http://base.py” rel=“nofollow noopener”>base.py", line 128, in _get_response
response = self.process_exception_by_middleware(e, request)
File “d:\t_django\ll_env\lib\site-packages\django\core\handlers<a target=”_blank" href=“http://base.py” rel=“nofollow noopener”>base.py", line 126, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File “d:\t_django\t_djangos<a target=”_blank" href=“http://views.py” rel=“nofollow noopener”>views.py", line 20, in topic
topic = Topic.objects.get(id=topic_id)
File “d:\t_django\ll_env\lib\site-packages\django\db\models<a target=”_blank" href=“http://manager.py” rel=“nofollow noopener”>manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File “d:\t_django\ll_env\lib\site-packages\django\db\models<a target=”_blank" href=“http://query.py” rel=“nofollow noopener”>query.py", line 397, in get
num = len(clone)
File “d:\t_django\ll_env\lib\site-packages\django\db\models<a target=”_blank" href=“http://query.py” rel=“nofollow noopener”>query.py", line 254, in len
self._fetch_all()
File “d:\t_django\ll_env\lib\site-packages\django\db\models<a target=”_blank" href=“http://query.py” rel=“nofollow noopener”>query.py", line 1179, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File “d:\t_django\ll_env\lib\site-packages\django\db\models<a target=”_blank" href=“http://query.py” rel=“nofollow noopener”>query.py", line 62, in iter
for row in compiler.results_iter(results):
File “d:\t_django\ll_env\lib\site-packages\django\db\models\sql<a target=”_blank" href=“http://compiler.py” rel=“nofollow noopener”>compiler.py", line 1011, in apply_converters
value = converter(value, expression, connection)
File “d:\t_django\ll_env\lib\site-packages\django\db\backends\sqlite3<a target=”_blank" href=“http://operations.py” rel=“nofollow noopener”>operations.py", line 222, in convert_datetimefield_value
value = parse_datetime(value)
File “d:\t_django\ll_env\lib\site-packages\django\utils<a target=”_blank" href=“http://dateparse.py” rel=“nofollow noopener”>dateparse.py", line 107, in parse_datetime
match = datetime_re.match(value)
TypeError: expected string or bytes-like object
[22/Jul/2018 22:33:12] “GET /topics/1/ HTTP/1.1” 500 101852
Internal Server Error: /topics/1/
Traceback (most recent call last):
File “d:\t_django\ll_env\lib\site-packages\django\core\handlers<a target=”_blank" href=“http://exception.py” rel=“nofollow noopener”>exception.py", line 35, in inner
response = get_response(request)
File “d:\t_django\ll_env\lib\site-packages\django\core\handlers<a target=”_blank" href=“http://base.py” rel=“nofollow noopener”>base.py", line 128, in _get_response
response = self.process_exception_by_middleware(e, request)
File “d:\t_django\ll_env\lib\site-packages\django\core\handlers<a target=”_blank" href=“http://base.py” rel=“nofollow noopener”>base.py", line 126, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File “d:\t_django\t_djangos<a target=”_blank" href=“http://views.py” rel=“nofollow noopener”>views.py", line 20, in topic
topic = Topic.objects.get(id=topic_id)
File “d:\t_django\ll_env\lib\site-packages\django\db\models<a target=”_blank" href=“http://manager.py” rel=“nofollow noopener”>manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File “d:\t_django\ll_env\lib\site-packages\django\db\models<a target=”_blank" href=“http://query.py” rel=“nofollow noopener”>query.py", line 397, in get
num = len(clone)
File “d:\t_django\ll_env\lib\site-packages\django\db\models<a target=”_blank" href=“http://query.py” rel=“nofollow noopener”>query.py", line 254, in len
self._fetch_all()
File “d:\t_django\ll_env\lib\site-packages\django\db\models<a target=”_blank" href=“http://query.py” rel=“nofollow noopener”>query.py", line 1179, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File “d:\t_django\ll_env\lib\site-packages\django\db\models<a target=”_blank" href=“http://query.py” rel=“nofollow noopener”>query.py", line 62, in iter
for row in compiler.results_iter(results):
File “d:\t_django\ll_env\lib\site-packages\django\db\models\sql<a target=”_blank" href=“http://compiler.py” rel=“nofollow noopener”>compiler.py", line 1011, in apply_converters
value = converter(value, expression, connection)
File “d:\t_django\ll_env\lib\site-packages\django\db\backends\sqlite3<a target=”_blank" href=“http://operations.py” rel=“nofollow noopener”>operations.py", line 222, in convert_datetimefield_value
value = parse_datetime(value)
File “d:\t_django\ll_env\lib\site-packages\django\utils<a target=”_blank" href=“http://dateparse.py” rel=“nofollow noopener”>dateparse.py", line 107, in parse_datetime
match = datetime_re.match(value)
TypeError: expected string or bytes-like object
#6 makemigrations&migrate 没…
是我搞错了,没有迁移数据,但是还是有问题
----------------------------HTML---------------------------
{% extends “t_djangos/base.html” %}
{% block content %}
<p>Topics:{{ topic }}</p>
<p>Entries:</p>
<ul>
{% for entry in entries %}
<li>
<p>{{ entry.date_added|date:‘M d, Y’ H:i }}</p>
<p>{{ entry.text|linebreaks }}</p>
</li>
{% empty %}
<li>
There are no entriesfor this topic yet.
</li>
{% endfor %}
</ul>
{% endblock content %}
----------------------------HTML---------------------------
<p>{{ entry.date_added|date:‘M d, Y’ H:i }}</p> 这一行并不在网页上显示出来
<p>{{ entry.text|linebreaks }}</p> 这个却会
先不加 filter 试一下。
:‘M d, Y’ H:i 这边引号不知道是不是你 po 出来时候的问题。
如果还是没有内容的话 db_shell 进去看看是不是迁移过后表里值没了
原来是 views 里面把变量名写错了

