在Django中对用户配置文件模型设置和使用标志
我有一个简单的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()
更多信息可以在这里找到: