질문 오류를 못 잡습니다.
질문 생성시에 내용을 넣지 않으면 그냥 에러화면으로 넘어가 버리네요.
질문 수정시에는 제목이나 내용을 지워보면 워닝이 뜨는데.
같은 폼에서 에러 부분 인클류드 해서 쓰는데 왜 이런 결과가 나올까요?
{% extends 'base.html' %}
{% block content %}
<div class="container">
<h5 class="my-3 border-bottom pb-2">질문등록</h5>
<form method="post" class="post-form my-3">
{% csrf_token %}
{% include "form_errors.html" %}
<div class="mb-3">
<label for="subject" class="form-label">제목</label>
<input type="text" class="form-control" name="subject" id="subject"
value="{{ form.subject.value|default_if_none:'' }}">
</div>
<div class="mb-3">
<label for="content" class="form-label">내용</label>
<textarea class="form-control" name="content"
id="content" rows="10">{{ form.content.value|default_if_none:'' }}</textarea>
</div>
<button type="submit" class="btn btn-primary">저장하기</button>
</form>
</div>
{% endblock %}
from django.contrib import messages
from django.contrib.auth.decorators import login_required
from django.shortcuts import render, get_object_or_404, redirect
from django.utils import timezone
from ..models import Question
from ..forms import QuestionForm
#질문등록
@login_required(login_url='common:login')
def question_create(request):
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.save()
return redirect('board:index')
else:
form = QuestionForm()
context = {'form': form}
return render(request, 'board/question_form.html', context)
# 질문수정
@login_required(login_url='common:login')
def question_modify(request, question_id):
question = get_object_or_404(Question, pk=question_id)
if request.user != question.author:
messages.error(request, '수정권한이 없습니다.')
return redirect('board: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('board:detail', question_id = question.id)
else:
form = QuestionForm(instance=question)
context = {'form': form}
return render(request, 'board/question_form.html', context)
# 질문삭제
@login_required(login_url='common:login')
def question_delete(request, question_id):
question = get_object_or_404(Question, pk=question_id)
if request.user != question.author:
messages.error(request, '삭제권한이 없습니다.')
return redirect('board:detail', question_id=question.id)
question.delete()
return redirect('board:index')
irchama 님 297
M 2023년 8월 21일 11:36 오전
글쓰고 나서 소스를 한줄 한줄 보다보니
글 등록시에 if form.is_valid:
뒤에 () 괄호가 빠져 있네요..
이런건 대체 어떻게 찾어야 하죠?
로그 같은거로 찾을 수 있나요?
-
irchama님,
2023년 8월 21일 11:41 오전
추천
,
대댓글