점프 투 장고 2-10 폼 관련 질문 입니다.
question_detail.html '답변등록' 하는 form 에서
답변내용이 없으면 form.errors 가 발생해야 하는데
발생하지 않고 submit 해 버립니다.
<form action="{% url 'pybo:answer_create' question.id %}" method="post" class="my-3">
{% csrf_token %}
{% if form.errors %}
<div class="alert alert-danger" role="alert">
{% for field in form %}
{% if field.errors %}
<strong>{{ field.label }}</strong>
{{ field.errors }}
{% endif %}
{% endfor %}
</div>
{% endif %}
<div class="form-group">
<textarea name="content" id="content" class="form-control" rows="10"></textarea>
</div>
<input type="submit" value="답변등록" class="btn btn-primary">
</form>
이부분 인데요. question_form.html 에서는 잘 동작합니다.
뭐가 문제인지 알수 있을까요?
netantz 님 494
M 2021년 10월 11일 10:42 오전
작성하신 view 소스를 보여 주세요.
-
박응용님,
2021년 10월 11일 1:27 오후
추천
,
대댓글
1개의 답변이 있습니다. 1 / 1 Page
from django.shortcuts import render, get_object_or_404, redirect
Create your views here.
from django.shortcuts import render
from django.utils import timezone
from .models import Question
from .forms import QuestionForm, AnswerForm
from django.core.paginator import Paginator
def index(request):
#입력 파라미터
page = request.GET.get('page','1') #페이지
#조회
question_list = Question.objects.order_by('-create_date')
#페이징처리
paginator = Paginator(question_list,10) #페이지당 10개씩 보여주기
page_obj = paginator.get_page(page)
#context = {'question_list': question_list}
context = {'question_list':page_obj}
return render(request,'pybo/question_list.html',context)
def detail(request, question_id):
question = get_object_or_404(Question, pk=question_id)
context = {'question': question}
return render(request,'pybo/question_detail.html', context)
def answer_create(request, question_id):
question = get_object_or_404(Question, pk=question_id)
if request.method == "POST":
form = AnswerForm(request.POST)
if form.is_valid():
answer = form.save(commit=False)
answer.create_date = timezone.now()
answer.question = question
answer.save()
return redirect('pybo:detail', question_id=question.id)
else:
form = AnswerForm()
context = {'question':question, 'form': form}
return render(request, 'pybo/question_detail.html', context)
def question_create(request):
if request.method == 'POST':
form = QuestionForm(request.POST)
if form.is_valid():
question = form.save(commit=False)
question.create_date = timezone.now()
question.save()
return redirect('pybo:index')
else:
form = QuestionForm()
context = {'form': form}
return render(request, 'pybo/question_form.html', context)
netantz 님
2021년 10월 11일 3:30 오후
answer_create 함수에서 else 문 이후의 문장들이 전부 들여쓰기가 잘못되었습니다. 다음 페이지에서 들여쓰기를 확인해 보세요.
https://wikidocs.net/70855
-
박응용님,
2021년 10월 11일 4:36 오후
추천
,
대댓글