2016-11-17 3 views
0

'Opis'라는 TextField가 포함 된 내 모델의 입력 양식이 있습니다. 모델 인스턴스가 데이터베이스에 성공적으로 저장되었습니다. 그러나 특정 텍스트를 쓰고 저장할 때 사용자에게 더 많은 옵션을 제공하려고했습니다. 그래서 함께 입력 필드가 TinyMCE를 위젯으로 렌더링 할 내 템플릿의 시작 부분에 충분한TextField가 HTMLField로 변경된 후 양식 저장이 중단되었습니다.

<head> {{ form.media }} </head> 

을했다 퍼팅과 함께, TinyMCE에 설치 HTMLField에 텍스트 필드를 변경하고이를 발견했다. 다시 말해서, 기존의 ModelForm을 유지했고, 변경된 표시가 멋지고 편리하다고 생각했습니다. 그러나 사용자가 양식을 제출하면 아무 일도 일어나지 않습니다. 양식은 유효하지만 데이터베이스는 갱신되지 않습니다.

def createcourse(request): 
    if request.method=='POST': 
     form = KursForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      return HttpResponseRedirect('/polls/usersite') 
    else: 
     form = KursForm() 

    return render(request, 'polls/createcourse.html', {"form" : form}) 

과 createcourse.html에서 내 views.py에서

class KursForm(ModelForm): 
    class Meta: 
     model = Kurs 
     fields = "__all__"  

: 내 forms.py에서

from tinymce.models import HTMLField 

class Kurs(models.Model): 
    [skipping...] 
    opis = HTMLField() 
    [skipping the rest] 

: 내 models.py에서

:

<head>{{ form.media }}</head> 

<form action="" method="post"> 
{% csrf_token %} 
{{ form }} 
<input type="submit" value="Submit" /> 
</form> 

'제출'을 클릭하면 아무런 결과가 보이지 않습니다. TextField를 HTMLField로 변경하기 전까지는 모든 것이 완벽하게 작동했습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

편집 :이 TinyMCE에 대해 제기 similar issue이 보인다,하지만 난 도움이되지 않았다

class KursForm(ModelForm): 
    opis = forms.CharField(widget=TinyMCE(attrs={'required': False, 'cols': 30, 'rows': 10})) 
    class Meta: 
     model = Kurs 
     fields = "__all__"  

에 forms.py에서 폼을 편집하는 내 경우에는 그보고 싶다.

답변

2

좋아요, 실제로 이것은 TinyMCE의 문제입니다. ClaudeP는 친절하게도 this 스레드에서 나를 도울 수있었습니다. 요약하면, 내가 지금이 어떤 일을하고있는 것은 다음

- 위젯의 서브 클래스 :

class TinyMCEWidget(TinyMCE): 
    def use_required_attribute(self, *args): 
     return False 

하는 - 다음 무엇을 양식 (I이 될 수있는 추측을 수정 한 선택 사항) :

class KursForm(ModelForm): 
    opis = forms.CharField(widget=TinyMCEWidget(attrs={'required': False, 'cols': 30, 'rows': 10})) 
    class Meta: 
     model = Kurs 
    fields = "__all__"