这里的菜鸟。我有一个模型类,我想保存在该表的一个字段中处理的东西。我试图使用ModelManager,但不知道它是否可行或如何。
我想在这里为每个帖子保存一个自定义网址。所以我想在PostManager类中有一个方法来计算某些东西的哈希值(比如当前时间)并将其保存为url。我在这里找不到任何语法帮助。
class Post (models.Model):
name = models.CharField(max_length=1000, help_text="required, name of the post")
description = models.TextField(blank=True)
created_datetime = models.DateTimeField(auto_now_add=True, editable=False)
modified_datetime = models.DateTimeField(auto_now=True, editable=False)
custom_hashed_url = models.CharField(unique=True, max_length=1000, editable=False)
def save(self, *args, **kwargs):
#How to refer to the custom_hashed_url in the Post class?
super(Model, self).save()
答案 0 :(得分:3)
如果您希望将网址与其他信息一起保存在数据库中,则需要将其作为字段显示在模型中。
将网址更改为相应的字段类型,并将其“可编辑”属性设置为False,就像使用日期时间字段一样。这将阻止它出现在表格中。
然后您可以覆盖模型的保存方法(see Django docs),以便计算帖子的网址并在保存实例时自动添加它!
Model managers用于与许多实例或实例集一起使用的“模型级别”交互。在这种情况下,您试图操纵单个实例。我们使用一个字段将数据存储在记录的数据库中,并使用一种方法(在这种情况下覆盖内置方法以挂钩默认行为)来计算字段的值。
祝你好运!