我仍然是django的新手。我用过django管理员。现在我想要做两件事。
1.我需要一个模型存档,它将存储为原始数据的哈希值(类似于密码,但我想指定自己的加密类型和输入时应显示的原始数据)。
2.Admin用户可以通过一个名为“添加另一个字段”的链接添加另一个字段。
对于上面两个问题,我需要知道保存按钮的工作原理(假设是添加用户页面或模型添加新行页面)&此页面文件所在的位置?那我该如何自定义该页面功能呢。我知道&使用自定义模板(.html)页面。
我发现了很多与此相关的问题,但对于像我这样的新手来说理解起来很复杂。我阅读了django文档来定制密码,但无法知道,在哪里申请。
我有一个模型(在管理网站中显示),就像这个model.py
class departments(models.Model):
priority = models.TextField('prioriy')
department = models.TextField('Department')
emp = models.IntegerField('Emp_id')
empname = models.TextField('EmpName')
def __unicode__(self):
return department
我希望emp字段加密加密& admin用户可以添加更多字段。如果可能的话,请简要介绍一下。这里有更多细节......
首先,我想要一个自定义保存选项,用于将原始值作为哈希数据插入。就像我有一个字段'emp',当管理员用户在该字段中输入原始数据时,它应该在模型中存储散列加密而不是直接行数据。(受密码样式启发)。
其次,在那之后,我可以认为需要额外的新领域,例如想要添加
emp_father_name = models.TextField('Emp_father_Name')
我能想到,我必须使用ModelAdmin,但是如何&哪里。是否类似于使用自定义模板。
希望现在我能够表达它。谢谢你。
答案 0 :(得分:1)
您可以在模型中覆盖保存方法,如下所示,以便对字段进行散列。
class departments(models.Model):
priority = models.TextField('prioriy')
department = models.TextField('Department')
emp = models.IntegerField('Emp_id')
empname = models.TextField('EmpName')
def __unicode__(self):
return department
def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
self.emp = ur_hash_func(self.emp)
return models.Model.save(self, force_insert=force_insert, force_update=force_update, using=using, update_fields=update_fields)
这将对你的字段进行哈希处理。
我不明白新的额外部分。
答案 1 :(得分:0)
2.Admin用户可以通过一个名为“添加另一个字段”的链接添加另一个字段。
如果我明白了。您可以在教程https://docs.djangoproject.com/en/1.6/intro/tutorial02/#adding-related-objects
中添加来自其他模型的相关对象的新字段或集合