2015-02-02 6 views
0

장고 블로그 프로젝트에 대한 의견을 작성하려고하지만 양식 제출 버튼을 클릭해도 아무런 변화가 없습니다.양식이 정보를 제출하지 않음 (Django)

다음은 템플릿의 html입니다.

<form role="form" method="post"> 
    <div class="input-group"> 
     {% csrf_token %} 
     {% for field in form %} 
     {{ field }} 
     {% endfor %} 
     <p>Comment: </p> 
     <span class="input-group-btn"> 
     <button class="btn btn-default" type="submit">Submit</button> 
     </span> 
    </div> 
</form> 

다음은 버튼을 눌렀을 때 전화를 걸려고하는 화면입니다.

def detail(request, slug): 
    context ={} 
    post = BlogPost.objects.get(slug=slug) 
    # print(request.method) 
    if request.method=='POST': 
     form = CommentForm(request.POST) 
    else: 
     form = CommentForm() 
    if form.is_valid(): 
     t = form.save(commit=False) 
     t.commentTime = datetime.datetime.now() 
     t.save() 
     return HttpResponseRedirect(reverse('blogpost_detail')) 
    comment_list=Comments.objects.order_by('-commentTime')[:25] 
    context = {'comment':comment_list,'form':form, 'post': post} 
    return render(request, 'blog/blogpost_detail.html', context) 

다음은 템플릿에서 호출되는 양식입니다.

class CommentForm(forms.ModelForm): 
    class Meta: 
     model = Comments 
     fields=('commentText', 'commentImage',) 
     exclude =('post','commentTime',) 
     widgets={ 
      'commentText': forms.Textarea(attrs={'col':10}), 
     } 

도움 주셔서 감사합니다!

+1

이어야합니다. 'form.is_valid'는'POST' 체크 안에 있어야합니다. 그렇게하지 않으면'form.is_valid'는 매번 (GET을 위해) 평가합니다. 이것은 의도 한 것이 아닙니다. 또한, 현재 URL이'POST '를하고자하는 곳인지 확인하십시오. 아니면'action'을 명시 적으로 지정해야합니다. – karthikr

+1

'form' 태그에는'action'이 없습니다; '

' –

+0

어드 바이스 친구들에게 감사드립니다! @karthikr 나는 POST하고 싶지만 여전히 클릭 할 때 아무 것도하지 않는 URL에있다. – enjoysturtles

답변

0

양식 태그에 action 속성이 필요합니다. 같은 URL에 글을 올리신 후에는

<form action="." method="post " role°"form"> 
관련 문제