में 'मुक्त इनपुट' टेक्स्ट फ़ील्ड्स में निहित ईमेल पतों को कैसे रोक सकता हूं, मेरे मॉडल में मैं अक्सर टेक्स्ट फ़ील्ड का उपयोग करता हूं जिसका उद्देश्य कपड़ा-स्वरूपित इनपुट के बड़े टुकड़े शामिल करना है। मैं स्वचालित रूप से इन टेक्स्ट फ़ील्ड में दर्ज किए गए किसी भी ईमेल पते को खराब करना चाहता हूं, ताकि जब वे टेम्पलेट में मुद्रित हों, वे मकड़ियों के लिए दृश्यमान नहीं हैं।मैं Django
क्या ऐसा करने का कोई शानदार तरीका है?
अद्यतन:
lazerscience के जवाब के आधार पर नीचे, इस कोड मैं का उपयोग कर समाप्त हो गया था। मैंने फ़ाइल encode_mailto.py नाम दिया है, और इसे 'उपयोगिता' प्रकार ऐप के अंदर एक templatetags निर्देशिका में रखा है जिसे मैं अपने अधिकांश django प्रोजेक्ट्स में स्थापित करता हूं।
import re
import random
from django.utils.safestring import mark_safe
from django import template
register = template.Library()
email_link_pat = re.compile(r'<a\s+href=("|\')?mailto:[^>]+>[^<]*</a>')
email_pat = re.compile(r'\b[-.\w][email protected][-.\w]+\.[a-z]{2,4}\b')
def get_script(m):
code_list = []
for c in m.group(0):
d = ord(c)
x = random.randint(0, d)
code_list.append("%d+%d" % (x, d-x))
return '<script type="text/javascript">document.write(String.fromCharCode(%s))</script>' % \
",".join(code_list)
def encode_mailto(text):
text = email_link_pat.sub(get_script, text)
text = email_pat.sub(get_script, text)
return mark_safe(text)
register.filter('encode_mailto', encode_mailto)</pre>
तो इस प्रकार टेम्पलेट्स में उपयोग:
{% load encode_mailto %}
{{"A bunch of text with an email address [email protected]"|encode_mailto }}
बिल्कुल सही, धन्यवाद। मैंने अपने प्रश्न को इस परियोजना के साथ अद्यतन किया कि मुझे इस परियोजना में कैसे काम करना है। – bitbutter