누군가 내 사이트를 방문하여 양식의 줄 바꿈, 단락을 언급하지 않기를 바랍니다. 이 경우 "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
:) 감사합니다. – anhtran