Я создаю свой блог с помощью django и пытаюсь создавать URL-адреса постов, после того, как я напишу его модели и вызову его в представлениях, он покажет мне эту ошибку:
[TypeError at / posts /post / why-i-love-python-django /,
post_details () получил неожиданный аргумент ключевого слова 'slug']
Я попытался изменить «id» в [posts / views.py line: 102] и сделал его «slug»,также отредактировал его в [line: 104]
в [posts / view.py line: 102]:
def post_details(request, id):
post_list = Post.objects.active()
post = get_object_or_404(Post, id=id)
if post.publish > timezone.now().date() or post.draft:
if not request.user.is_authenticated or not request.user.is_superuser:
raise Http404
share_string = quote_plus(post.content)
initial_data = {
"content_type": post.get_content_type,
"object_id": post.id,
}
# post read time
read_time = get_read_time(post.content)
# print(type(read_time))
form = CommentForm(request.POST or None, initial=initial_data)
if form.is_valid():
c_type = form.cleaned_data.get('content_type')
content_type = ContentType.objects.get(model=c_type)
obj_id = form.cleaned_data.get('object_id')
content_data = form.cleaned_data.get('content')
parent_obj = None
try:
parent_id = int(request.POST.get('parent_id'))
except:
parent_id = None
if parent_id:
parent_qs = Comment.objects.filter(id=parent_id)
if parent_qs.exists() and parent_qs.count() == 1:
parent_obj = parent_qs.first()
new_comment, created = Comment.objects.get_or_create(
user = request.user,
content_type = content_type,
object_id = obj_id,
content = content_data,
parent = parent_obj,
)
return HttpResponseRedirect(new_comment.content_object.get_absolute_url())
comments = post.comments # Comment.objects.filter_by_instance(post) # without @property
context = {
'post': post,
'share_string': share_string,
'comments': comments,
'comment_form': form,
'read_time': read_time,
}
return render(request, 'post.html', context=context)
Я ожидал, что почтовый слаг будет создан и правильно добавлен в URL