Python 3.x Django查询匹配查询不存在-但我可以';我找不到错误

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, '

我用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, '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,
                          )