这是我的模型.py公司名称:
class Post(models.Model):
actualPost = models.CharField(max_length=200)
这是我的表单.py公司名称:
^{pr2}$这是我的视图.py公司名称:
def createPostView(request):
if request.method=='POST':
form = PostForm(request.POST)
if form.is_valid():
stringPost = form.cleaned_data['actualPost'] #I'm assuming stringPost will now be the string version of the users input
findLinks(stringPost)
newPost = Post(actualPost = form.cleaned_data['actualPost'])
所以基本上在视图中,在获得用户input/post的字符串版本之后,我计划将该字符串发送给一个名为findLinks的函数。这是findLinks函数:
def findLinks(postString):
word = ''
totalLength = len(postString)
for i in postString:
if i=='@': #basically, I want anything after an '@' sign to be a link..
#so if the post is "Go to @www.google.com to search for anything"
#I want www.google.com to be a link
indexOfSign = postString.index(i)
while ((indexOfSign != totalLength-1) and (postString[indexOfSign+1] != '')):
word += htmlString[indexOfSign+1]
indexOfSign += 1
return word
函数返回“@”符号后的单词。既然它返回了@符号后面的单词,那么我该如何安全地将该单词设置为一个链接,以便当我将帖子放入模板中时,当我查看模板时,@符号后的单词将显示为链接?在
我想的一种可能的方法是,在python函数中,基本上返回post的字符串版本,除了在@符号后面用“and”括起来之外,但这行不通,因为出于安全原因,Django将用户输入解释为原始字符串而不是代码,对吗?在
我不想强迫Django将Post解释为代码而不是原始字符串,因为这会导致安全问题。有什么方法可以让我安全地把用户输入的内容保存到数据库中,然后在模板中,让“@”后面的所有单词都签署一个链接?在
声明如下类方法:
在模板中
^{pr2}$相关问题 更多 >
编程相关推荐