目前我创建了一个非常大的项目,我需要实现将用字符串替换为用户提供的字符串的功能。此外,每个用户都可以拥有自己的自定义字符串。我将举例说明以便更好地理解
有一个字符串“object”,user1想要将字符串“object”更改为“tree”,在整个项目中(所有模板等)字符串“object”被“tree”替换
我的想法如下:
你还有其他更好的想法吗?对你来说哪个想法是最好的选择?
实施例:
模板main.html中的文字
... 这个对象非常有用 ...
每个用户都可以通过自定义字符串
对网站进行个性化设置他们保存设置,然后当他们进入main.html时,他们会看到
希望有所帮助
答案 0 :(得分:1)
免责声明:如果您必须这样做,我认为您的项目有问题。你考虑过使用变量吗?
在Linux下,此命令将在当前目录
下的所有文件中将“orange”替换为“whale”find -type f -exec sed -i s/orange/whale/ {} \;
答案 1 :(得分:0)
我可以根据您的问题考虑2个方案
如果您的问题与方案1匹配,那么很难实现任何简单而干净的解决方案来解决您的问题。也许你可以给用户一个HTML编辑器来重写模板的内容。
但是如果您的问题与方案2匹配,那么您可以将所有这些预定义的关键字以key:value对的形式放在任何持久存储中,当用户登录时,然后在内存中加载这些key:value对。并使模板从内存中获取预定义键的值(可以通过Django contextprocessor)。
答案 2 :(得分:0)
在思考这个问题之后,我得出结论,最好的选择是中间件。
class CustomWordsMiddleware(object):
def process_response(self, request, response):
if request.user.settings == 'lumberjack':
response.content = response.content.replace("object", "tree")
response.content = response.content.replace("objects", "trees")
return response
当然这只是一个例子,我也将实现regexp而不是字符串替换。此外,我将使用美容汤来解析html以找到我应该替换字符串的类。
答案 3 :(得分:0)
这更像是项目架构问题。 做我想“想要”的最好方法是: