0

誰かが私のサイトにアクセスして、フォームのスペース、ブレークラインのみについてコメントしたくありません。この場合、コマンド「if」はどのように使用すればよいですか? 答えてくれてありがとう!

4

3 に答える 3

1

ビュー自体またはテンプレート内でこれを本当に処理したいのかどうかはわかりません。しばらくしてから、Djangoのコメントフレームワークでは、不要なコメントを検出するために必要なすべてのロジックを実装できるモデレーターを定義できます。

その使用方法の良い例については、BartTCのdjango-comments-spamfighterアプリをご覧ください

確かに、これには、そもそもDjangoのコメントフレームワークを使用する必要があります。そうでない場合は、フォームのvalidateメソッドで、一般的にすべての改行と空白を取り除き、コメントメッセージがまだ0文字より長いかどうかを確認できます。Pythonの文字列にはstrip、それらのために呼び出される素敵な小さな関数があります:-)

于 2009-11-03T06:57:46.660 に答える
0

フォームを使用して、クリーンなメソッドを追加するだけでよいと思います。インタラクティブコンソールで試してみました。

>>> 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']}
于 2009-11-03T18:37:43.327 に答える
0

したがって、送信されたコメントにスペースまたは改行 (空白文字) のみが含まれているか、空のコメントであるかを確認してから、そのコメントを無視する (またはユーザーにメッセージを表示する) ことをお勧めします。正規表現を使用してこれを行うことができます。

import re

if re.search('^\s*$', comment_text)
   // empty comment, do something
于 2009-11-03T07:28:51.497 に答える