обновлен с django 1.1 до 2.2, - (ошибка) post_detail_view () получил неожиданный аргумент ключевого слова 'день' - PullRequest
0 голосов
/ 08 мая 2020

(models.py) из django .utils import timezone

class Post(models.Model):

publish = models.DateTimeField(default=timezone.now)

def get_absolute_url(self):
    return reverse ('post_detail',args= 
    [self.publish.year,self.publish.strftime('%m'),self.publish.strftime('%d'),self.slug])

views.py

def post_detail_view(request,year,month,post):

 post=get_object_or_404(Post,slug=post,status='published',publish__year='year',publish__month='month',publish__day='day')
    return render(request,'blog/post_detail.html',{'post':post})

** выдает ошибку, поскольку - post_detail_view () получил неожиданный аргумент ключевого слова 'день'

пожалуйста, помогите

url.py

re_path('(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/(?P<post>[-\w]+)/$',views.post_detail_view,name='post_detail')

1 Ответ

0 голосов
/ 08 мая 2020

Я думаю.

У вас есть day ((?P<day>\d{2})) в

re_path('(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/...', views.post_detail_view, ...)

, поэтому он может получить URL-адрес с day и отправить этот day в качестве аргумента на post_detail_view

но у вас нет day в

def post_detail_view(request,year,month,post):

, поэтому у него проблема, что делать с этим day.

Может быть, просто добавить day

def post_detail_view(request,year,month,  day,  post):
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...