Python 3.x Django查询匹配查询不存在-但我可以';我找不到错误
我用Django创建了一个简单的weblog模型 model.py:Python 3.x Django查询匹配查询不存在-但我可以';我找不到错误,python-3.x,django-views,Python 3.x,Django Views,我用Django创建了一个简单的weblog模型 model.py: class Entry(models.Model): LIVE_STATUS = 1 DRAFT_STATUS = 2 HIDDEN_STATUS = 3 STATUS_CHOICES = ( (LIVE_STATUS, 'Veröffentlicht'), (DRAFT_STATUS, 'Entwurf'), (HIDDEN_STATUS, '
class Entry(models.Model):
LIVE_STATUS = 1
DRAFT_STATUS = 2
HIDDEN_STATUS = 3
STATUS_CHOICES = (
(LIVE_STATUS, 'Veröffentlicht'),
(DRAFT_STATUS, 'Entwurf'),
(HIDDEN_STATUS, 'Verborgen'),
)
title = models.CharField(verbose_name='Titel', max_length=250)
excerpt = HTMLField(verbose_name='Textauszug', blank=True)
body = HTMLField(verbose_name='Text')
pub_date = models.DateTimeField(default=datetime.datetime.now, verbose_name='Veröffentlicht am')
author = models.ForeignKey(User, verbose_name='Autor', on_delete=models.CASCADE)
enable_comments = models.BooleanField(verbose_name='Kommentare zulassen', default=True)
status = models.IntegerField(verbose_name='Status', choices=STATUS_CHOICES, default=DRAFT_STATUS)
categories = models.ManyToManyField(Category, verbose_name='Kategorie')
slug = models.SlugField(unique_for_date='pub_date')
url.py:
urlpatterns = [
path('blog/kategorie/<slug:slug>/', blog_views.entries_in_category),
path('blog/<int:year>/<int:month>/<int:day>/<slug:slug>/', blog_views.entry_detail_view),
]
我得到一个错误:“条目匹配查询不存在。”但在我看来,它看起来是正确的。该请求与条目模型中的KWARG匹配
回溯:
Traceback (most recent call last):
File "C:\Webseiten\karli\venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Webseiten\karli\venv\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Webseiten\karli\blog\views.py", line 32, in entry_detail_view
entry = Entry.objects.get(slug=slug,
File "C:\Webseiten\karli\venv\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Webseiten\karli\venv\lib\site-packages\django\db\models\query.py", line 429, in get
raise self.model.DoesNotExist(
Exception Type: DoesNotExist at /blog/2020/12/28/zwischenbericht/
Exception Value: Entry matching query does not exist.
回溯详细信息:
可变值
第28天
第12个月
datetime.datetime(2020,12,28,0,0)
要求
鼻涕虫兹维申贝里赫特
2020年
下一步:
可变值
args()
kwargs{'pub_date____日]:28,
“发布日期/月份”:12,
“发布日期:2020年”,
“slug”:“zwischenbericht”,
“状态”:1}
名称“get”
如果我删除views.py中的月份和日期,我会得到一个结果。如果我在查询中使用月和/或日,每次都会得到错误。查询中只有年份有效。但是结果可能是错误的,或者我会得到另一个错误。(get()返回了多个条目)
为什么我不能在查询中使用月和日?
顺致敬意,
Stephan您确定时间戳正确吗?如果打印(entry.pub_date),会发生什么情况?是的,时间戳是正确的
从blog.models导入条目e=Entry.objects.get(slug='zwischenbericht')打印(e.pub_date)2020-12-28 16:54:12+00:00
您确定时间戳正确吗?如果打印(entry.pub_date),会发生什么情况?是的,时间戳是正确的<代码>从blog.models导入条目e=Entry.objects.get(slug='zwischenbericht')打印(e.pub_日期)2020-12-28 16:54:12+00:00
Traceback (most recent call last):
File "C:\Webseiten\karli\venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Webseiten\karli\venv\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Webseiten\karli\blog\views.py", line 32, in entry_detail_view
entry = Entry.objects.get(slug=slug,
File "C:\Webseiten\karli\venv\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Webseiten\karli\venv\lib\site-packages\django\db\models\query.py", line 429, in get
raise self.model.DoesNotExist(
Exception Type: DoesNotExist at /blog/2020/12/28/zwischenbericht/
Exception Value: Entry matching query does not exist.
entry = Entry.objects.get(slug=slug,
status=Entry.LIVE_STATUS,
pub_date__year=p_date.year,
# pub_date__month=p_date.month,
# pub_date__day=p_date.day,
)