gpt4 book ai didi

database - 在 Django 中存储具有昵称的匿名用户的优雅方式?

转载 作者:太空狗 更新时间:2023-10-30 01:54:45 26 4
gpt4 key购买 nike

我的 Django 应用程序中有一个简单的 Post 模型:

class Post(models.Model):
category = models.CharField(max_length=10, choices=choices)
message = models.CharField(max_length=500)
user = models.ForeignKey(User, editable=False)

我想实现让匿名用户使用昵称创建帖子的功能。不幸的是,django 不允许您将 AnonymousUser 的实例保存为 Post 类的外键。

我正在考虑将一个“虚拟”用户记录添加到数据库中,该记录代表匿名用户(id=0,或者如果可能的话是一些负数),它将用于没有用户的所有帖子。如果存在,则可以使用可为空的名称字段来表示匿名用户的昵称。

这个解决方案对我来说似乎有点老套。有没有更清洁更有效的解决方案?

最佳答案

如果您可以通过一些 session 信息识别新用户,您可以只创建普通用户帐户,形式上可以这么说 - 带有一个标志来将它们标识为易变的(这可能会导致一些常规维护清理)。

如果在 session 生命周期内,用户确实想要注册,您可以在您这边重新使用用户帐户,用户可以保留他的所有数据。

正如@slacy 评论和@Dominique 回答的那样;与其自己动手,不如看看现有的项目,例如这个:

关于database - 在 Django 中存储具有昵称的匿名用户的优雅方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4584657/

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