Django : 항목을 차단하는 방법은 공백 또는 브레이크 라인 만 포함됩니다.
-
13-09-2019 - |
문제
나는 누군가가 내 사이트를 방문하여 양식의 공간, 브레이크 라인 만 댓글을 달고 싶지 않습니다. 이 경우 "if"명령을 어떻게 사용합니까? 답변 주셔서 감사합니다!
해결책
따라서 제출 된 댓글에 공백이나 줄이 나쁘다 (즉, 공백 문자) 만 있는지 확인한 다음 해당 주석을 무시하거나 사용자에게 메시지를 표시하는지 확인하는 것입니다. 정규 표현식을 사용하여이를 수행 할 수 있습니다.
import re
if re.search('^\s*$', comment_text)
// empty comment, do something
다른 팁
보기 자체 또는 템플릿 내에서 이것을 정말로 처리하고 싶다면 확실하지 않습니다. Django의 의견 프레임 워크가있는 시간 이후로 정의 할 수 있습니다. 중재자 원치 않는 주석을 감지하려는 모든 논리를 구현할 수있는 곳.
사용 방법에 대한 좋은 예를 보려면 살펴보십시오. Barttc의 Django-Comments-Spamfighter 앱.
확실히 이것은 Django의 의견 프레임 워크를 처음에 사용해야합니다. 그렇지 않은 경우, 귀하의 댓글 메시지가 여전히 0 자 미만인 경우 양식의 검증 메소드에서 일반적으로 모든 최신 및 공백을 제거하고 확인할 수 있습니다. 파이썬의 문자열은 멋진 작은 기능을 가지고 있습니다 strip
그런 것들에 대해 :-)
양식을 사용하고 깨끗한 방법을 추가하면됩니다. 방금 대화식 콘솔에서 시도해 보았습니다.
>>> 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']}
제휴하지 않습니다 StackOverflow