基于Django的类X(Twitter)社交讨论站点:用户模型定义位置咨询
Django中用户模型的定义位置
用户模型(包括你需要的用户评分这类自定义字段)必须在models.py文件中定义,原因如下:
- models.py是Django ORM(对象关系映射)的核心文件,所有需要持久化存储到数据库的数据模型都在这里定义。用户数据(账号信息、评分等)需要长期保存,对应数据库中的用户表,模型就是这个表的代码层面映射。
- forms.py的作用是处理表单的验证、数据清洗和前端渲染,比如用户注册表单、登录表单,它依赖于models中定义的用户模型,而非用来定义用户本身。
- views.py负责处理HTTP请求、业务逻辑和响应返回,比如处理用户登录请求、查询用户评分,它是调用models中的用户模型来操作数据,不是定义模型的地方。
举个自定义用户模型的简单示例:
# models.py from django.contrib.auth.models import AbstractUser from django.db import models class CustomUser(AbstractUser): user_rating = models.FloatField(default=0.0) # 新增用户评分字段 # 可添加其他自定义字段,比如头像、签名等
如果需要扩展Django默认的用户功能,推荐继承AbstractUser,这样既能保留Django自带的认证、权限等功能,又能灵活添加自定义字段。
内容的提问来源于stack exchange,提问作者Benjamin
相关产品推荐
相关产品推荐

