카테고리 만드는 중 질문 등록하기를 누르면 question_create() missing 1 required positional argument: 'category_name'이 뜸니다

안녕하세요 지금 자유게시판 카테고리를 만들고있습니다. 질문과답변, 자유게시판 두개의 카테고리를 만든 후 질문 등록하기 버튼을 누르면 question_create() missing 1 required positional argument: 'category_name'이와 같은 오류가 계속 발생합니다. 코드가 오류인지 계속 찾아 보았지만 도무지 모르겠습니다. 저런 오류는 어떻게 해결하나요? 도와주세요
저자님의pybo.kr과 https://velog.io/@azzurri21/Django-점프투장고-카테고리-기능-추가 을 참고하였습니다. 아래는 코드입니다.

models.py
class Category(models.Model):
name = models.CharField(max_length=20, unique=True)
description = models.CharField(max_length=200, null=True, blank=True)
has_answer = models.BooleanField(default=True) # 답변가능 여부

def __str__(self):
    return self.name

def get_absolute_url(self):
    return reverse('pybo:index', args=[self.name])

class Question(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE,
related_name='author_question')
subject = models.CharField(max_length=200)
modify_date = models.DateTimeField(null=True, blank=True)
content = models.TextField()
create_date = models.DateTimeField()
voter = models.ManyToManyField(User, related_name='voter_question') # 추천인 추가
category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name='category_question', null=True)

def __str__(self):
    return self.subject

question_views.py
urls.py
urlpatterns = [
# base_views.py
path('',
base_views.index, name='index'),
path('question/list//',
base_views.index, name='index'),
path('/',
base_views.detail, name='detail'),

# question_views.py
path('question/create/<str:category_name>/',
     question_views.question_create, name='question_create'),
path('question/create/',
     question_views.question_create, name='question_create'),
path('question/modify/<int:question_id>/',
     question_views.question_modify, name='question_modify'),
path('question/delete/<int:question_id>/',
     question_views.question_delete, name='question_delete'),

base_views.py
def index(request, category_name='qna'):
"""
pybo 목록 출력
"""
# 입력 인자
page = request.GET.get('page', '1') # 페이지
kw = request.GET.get('kw', '') # 검색어
so = request.GET.get('so', 'recent') # 정렬기준

category_list = Category.objects.all()
category = get_object_or_404(Category, name=category_name)
question_list = Question.objects.filter(category=category)

# 정렬

if so == 'recommend':
    question_list = Question.objects.annotate(num_voter=Count('voter')).order_by('-num_voter', '-create_date')

elif so == 'popular':
    question_list = Question.objects.annotate(num_answer=Count('answer')).order_by('-num_answer', '-create_date')

else:  # recent
    question_list = Question.objects.order_by('-create_date')

# 조회
#question_list = Question.objects.order_by('-create_date')

if kw:
     question_list = question_list.filter(
         Q(subject__icontains=kw) |  # 제목검색
         Q(content__icontains=kw) |  # 내용검색
         Q(author__username__icontains=kw) |  # 질문 글쓴이검색
         Q(answer__author__username__icontains=kw)  # 답변 글쓴이검색
     ).distinct()

# 페이징 처리
paginator = Paginator(question_list, 10)  # 페이지당 10개씩 보여 주기
page_obj = paginator.get_page(page)

context = {'question_list': page_obj, 'page': page, 'kw': kw, 'so': so,
           'category_list': category_list, 'category': category} #page와 kw가 추가됨
return render(request, 'pybo/question_list.html', context)

@login_required(login_url='common:login')
def question_create(request, category_name):
"""
pybo 질문 등록
"""
category = Category.objects.get(name=category_name)
if request.method == 'POST':
form = QuestionForm(request.POST)
if form.is_valid():
question = form.save(commit=False)
question.author = request.user
question.create_date = timezone.now()
question.category = category
question.save()
return redirect('pybo:index')
else:
form = QuestionForm()
context = {'form': form, 'category': category}
return render(request, 'pybo/question_form.html', context)

@login_required(login_url='common:login')
def question_modify(request, question_id):
"""
pybo 질문 수정
"""
question = get_object_or_404(Question, pk=question_id)
if request.user != question.author:
messages.error(request, '수정권한이 없습니다.')
return redirect('pybo:detail', question_id=question.id)

if request.method == "POST":
    form = QuestionForm(request.POST, instance=question)
    if form.is_valid():
        question = form.save(commit=False)
        question.author = request.user
        question.modify_date = timezone.now()  # 수정일시 저장
        question.save()
        return redirect('pybo:detail', question_id=question.id)
else:
    form = QuestionForm(instance=question)
context = {'form': form, 'category': question.category}
return render(request, 'pybo/question_form.html', context)

tsp3546 49

M 2022년 6월 22일 6:54 오전

공지사항 보시면 마크다운에 소스코드를 게시하는 방법이 있습니다. - 박응용님, 2022년 6월 23일 1:34 오전 추천 , 대댓글
목록으로