gpt4 book ai didi

用于在字段中保存自定义处理数据的 Django 模型管理器

转载 作者:行者123 更新时间:2023-12-04 06:35:59 25 4
gpt4 key购买 nike

这里是菜鸟。我有一个模型类,我想在其中保存在该表的字段之一中处理的内容。我正在尝试为此使用 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()

最佳答案

如果您希望 url 与其余信息一起保存在数据库中,则需要将其作为字段出现在模型中。

将 url 更改为适当的字段类型,并将其 'editable' 属性设置为 False,就像您对日期时间字段所做的那样。这将阻止它出现在表单中。

然后,您可以覆盖模型的保存方法( see Django docs ),以便它计算帖子的 url 并在保存实例时自动添加它!

Model managers用于与许多实例或实例集一起工作的“模型级”交互。在这种情况下,您正在尝试操作单个实例。我们使用一个字段在数据库中存储记录的信息和一个方法(在这种情况下覆盖一个内置方法以 Hook 默认行为)来计算字段的值。

祝你好运!

关于用于在字段中保存自定义处理数据的 Django 模型管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4869834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com