누군가 내 사이트를 방문하여 양식의 줄 바꿈, 단락을 언급하지 않기를 바랍니다. 이 경우 "if"명령을 어떻게 사용합니까? 답변 주셔서 감사합니다!Django : 항목을 차단하는 방법은 공백이나 중단 점 만 포함합니다.
답변
그래서 내가 원하는 것은 제출 된 주석에 공백이나 줄 바꿈 (공백 문자) 만 있는지 또는 빈 주석인지 확인하는 것입니다. 그 주석을 무시하십시오 (또는 사용자에게 메시지를 보여주십시오). 당신이 사용하는 정규 표현식을 수행 할 수 있습니다
import re
if re.search('^\s*$', comment_text)
// empty comment, do something
정말보기 자체 또는 템플릿 내에서이 문제를 처리하려면 확실하지 않습니다. Django의 주석 프레임 워크로 인해 moderators을 정의 할 수 있습니다. 여기서 원하지 않는 주석을 감지하려는 모든 로직을 구현할 수 있습니다.
사용 방법에 대한 좋은 예는 BartTC's django-comments-spamfighter app을 참조하십시오.
확실히 이것은 먼저 Django의 주석 프레임 워크를 사용해야합니다. 그렇지 않다면, 폼의 유효성 검증 메소드에서 모든 개행과 공백을 제거하고 주석 메시지가 여전히 0보다 길면 점검 할 수 있습니다. 파이썬의 문자열에는 strip
이라는 멋진 기능이 있습니다 :-)
아, 미안합니다. 나는 단지 그것을 위해 그것을 만든다. 사실, 내가 원하는 것은 파이썬 코드에서 원치 않는 문자를 잡는 방법이다. 특히 여기에는 공백과 끊어짐이 있습니다. – anhtran
이 경우 comment_text.strip을 사용하여 원하지 않는 문자를 모두 없애거나 (tomlog에서 설명한대로) 정규 표현식을 사용하고 사회자에게 포함 시키십시오. –
난 당신이 단지 양식을 사용하고 깨끗한 방법을 추가해야 할 것 같아요. 방금 대화 형 콘솔에서 사용해 보았습니다.
>>> from django import forms
>>> class CommentForm(forms.Form):
comment = forms.CharField()
def clean_comment(self):
comment = self.cleaned_data['comment']
comment = comment.strip()
if len(comment) == 0:
raise forms.ValidationError('Comment can not be blank')
else:
return comment
>>> form = CommentForm(data={'comment': ' '})
>>> form.is_valid()
False
>>> form.errors
{'comment': [u'Comment can not be blank']}
와우, 정말 분명합니다. 감사! – anhtran
- 1. VisualStudio의 중단 점
- 2. Java에서 중단 점 설정
- 3. Xcode 디버거의 중단 점
- 4. VS2008의 중단 점 문제
- 5. 중단 점 그룹화
- 6. ISR의 중단 점
- 7. EclipseME - 중단 점 문제
- 8. UnitTest ++의 중단 점
- 9. asp.net의 중단 점 문제
- 10. XP의 하드웨어 중단 점
- 11. GDB 중단 점
- 12. 스크립트 작업의 중단 점
- 13. 의존적 인 중단 점
- 14. jdb 조건부 중단 점
- 15. Eclipse 중단 점 이벤트
- 16. MSVC6 : 중단 점 프로그램을 중지합니다.
- 17. 호스트 IronPython 스크립트의 중단 점
- 18. Firefox 중단 점 변경 제출
- 19. Delphi : OnClick 중단 점 문제
- 20. appletine에 대한 이클립스의 중단 점
- 21. 방화 광 프로그램 중단 점?
- 22. PyDev doctests에서 중단 점 설정
- 23. Visual C++ : 중단 점 비활성화
- 24. Eclipse PDT가있는 중단 점 설정
- 25. VS2005 중단 점 검색 방법
- 26. 디버거가 발생한 경우의 중단 점
- 27. 중단 점 표시기가 표시되지 않음
- 28. GoogleTest : 중단 점 설정 방법
- 29. 클래스 만 디버그 모드에 포함합니다.
- 30. Visual Studio - 중단 점이 아닌 일부 중단 점
:) 감사합니다. – anhtran