3
我有一個Django應用程序,它看起來是這樣的:Django的:防止模板使用的模型方法
class Server(models.Model):
hostname = models.CharField(max_length=100)
# this field stores encrypted credentials
admin_credentials = models.TextField()
def get_admin_credentials(self):
return decrypt(self.admin_credentials)
由於Django的模板語言允許模板調用它們的上下文的方法(不需要參數)變量,它似乎太容易了一個模板,只是包含以下代碼泄漏這些憑據:
{{ server.get_admin_credentials }}
我如何防止直接使用get_admin_credentials()
方法模板?
真棒,感謝您的參考! 'do_not_call_in_templates'是在Django 1.4中添加的,我仍然堅持1.3,但它看起來像將alters_data設置爲True可以實現相同的目標。 –