Не удается разрешить ключевое слово pub_date_year - PullRequest
1 голос
/ 03 мая 2020

Я следовал документации django введите описание ссылки здесь

это мой код model.py

    from django.db import models


# Create your models here.


class Reporter(models.Model):
    full_name = models.CharField(max_length=70)
    def __str__(self):
        return self.full_name

class Article (models.Model):
    pub_date = models.DateField()
    headline = models.CharField(max_length=200)
    content = models.TextField()
    reporter = models.ForeignKey(Reporter, on_delete = models.CASCADE)
    def __str__(self):
        return self.headline

код urls.py

from django.urls import path

from . import views

urlpatterns = [
    path('article/<int:year>/', views.year_archive),

]

код views.py

from django.shortcuts import HttpResponse, render
from .models import Article

def year_archive (request,year):
    a_list = Article.objects.filter(pub_date_year = year)
    context = {
        'year' : year,
        'article_list' : a_list
    }
    return render(request, 'news/year_archive.html', context)

и чем год_архива. html

{%block title%} Article For {{ year }} {%endblock%}
{% block content %}
    <h1>Article For {{year}} </h1>
{% for ar in article_list %}
    <p>{{ar.headline}} </p>
    <p>By{{ar.reporter.full_name}} </p>
    <p>Publsihed {{ar.pub_date}} </p>
{% endfor %}
{% endblock %}

Я хочу спросить, когда я ввожу URL

http: // localhost: 8000 / article / 2020 /

появляется ошибка Не удается разрешить ключевое слово pub_date_year что нужно исправить

1 Ответ

1 голос
/ 03 мая 2020

A lookup [Django -doc] предшествует double подчеркиваний (__), поэтому должно быть:

def year_archive (request, year):
    a_list = Article.objects.filter(<b>pub_date__year=year</b>)
    # &hellip;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...