спасибо заранее.Это мой первый пост, постараюсь быть кратким.Я собираюсь выполнить упражнение 19-3 «Рефакторинг в Python Crash Course».Однако я немного застрял в этом.Я должен сделать функцию, чтобы проверить владельца темы, и если нет, то поднять ошибку Http404.
Я попытался создать папку «utils» и разместить там свою функцию, но у меня произошла ошибка имени, поэтому я удалил ее.Затем попытался сохранить функцию в том же файле, но я поднял ошибку Http404, даже когда пользователь был владельцем темы.Я оставил его, как и прежде, пытаясь выполнить это упражнение с закомментированной функцией:
from django.shortcuts import render
from django.http import HttpResponseRedirect, Http404
from django.urls import reverse
from django.contrib.auth.decorators import login_required
from .models import Topic, Entry
from .forms import TopicForm, EntryForm
@login_required
def topic(request, topic_id):
topic = Topic.objects.get(id=topic_id)
# check_topic_owner(request)
if topic.owner != request.user:
raise Http404
entries = topic.entry_set.order_by('-date_added')
context = {'topic': topic, 'entries': entries}
return render(request, 'learning_logs/topic.html', context)
@login_required
def edit_entry(request, entry_id):
"""Edit an existing entry"""
entry = Entry.objects.get(id=entry_id)
topic = entry.topic
# check_topic_owner(request)
if topic.owner != request.user:
raise Http404
if request.method != 'POST':
form = EntryForm(instance=entry)
#The function to check owner is here:
def check_topic_owner(request):
owner = Topic.owner
if owner != request.user:
raise Http404
Мне трудно понять, как я могу сделать «вспомогательную» функцию, если ей нужна какая-то дополнительная информация, такая какИдентификатор темы и определение владельца.Надеюсь, вы можете помочь мне, большое спасибо.