在Django中对用户配置文件模型设置和使用标志

0 投票
2 回答
1409 浏览
提问于 2025-04-15 16:33

我有一个简单的Django网页应用,是为了一个iPhone应用而做的。
我想让用户给我们的产品写个评价,但只想提示一次。之后就不想再显示这个提示了。

那么,最好的做法是不是在用户资料模型里加一个新的条目,里面有一个布尔值字段:“reviewed”(是否已评价)——然后在用户完成评价后把这个标记设为真?

接着我可以在我的模板里检查这个条目,决定是否显示提示。

我还没有接触过数据库模型、扩展用户模型或者保存到自定义数据库字段,所以如果有任何想法或例子,我会非常欢迎。我有点紧张,因为我的网站已经有活跃用户了,我不想弄坏用户表。

2 个回答

0

有很多方法可以做到这一点。我建议你试试以下方法:

Django有一个消息框架,设计上就是为了让用户只看到一次消息。当你创建、修改或删除某个东西时,可以通过 User.message_set.create(message='你想要的任何内容') 来给用户添加消息。这条消息只会显示给用户一次。这个功能依赖于Django的会话系统,我想你应该在使用,因为你依赖的是内置的用户模型。这些消息会存储在auth_message里。

希望这对你有帮助。

1

如果你在使用MySQL或PostgreSQL数据库,你可以进行一些ALTER TABLE操作,而不会丢失任何数据。

在Django框架中,为用户添加个人资料是非常简单的。要确保在个人资料不存在时创建它:

try:
    profile = request.user.get_profile()
except UserProfile.DoesNotExist:
    # If DoesNotExists, Create an empty one
    profile = UserProfile(user=request.user)
    profile.save()

更多信息可以在这里找到:

撰写回答