django - 哪个更适合在 django 中创建追随者系统,外键或多对多?
问题描述
哪一个最适合在 Django 中创建追随者追随系统。
1.外键
class Follower(models.Model):
current_user = models.ForeignKey(User,on_delete=models.CASCADE,related_name='following')
following_id = models.ForeignKey(User,on_delete=models.CASCADE,related_name='followers')
2.多对多
class Follower(models.Model):
current_user = models.ForeignKey(User,on_delete=models.CASCADE,related_name='following')
followers = models.ManyToManyField(User)
因此,例如,如果我们要检索以下用户列表:
1.Foreign Key
Follower.objects.get(following_id=1).following.all()
2 多对多
User.object.get(user=1).follower_set.all().values('current_user')
解决方案
如果您想添加有关某人关注的元数据,您别无选择,只能使用带有直通表的 M2M。否则,您不妨使用选项 1。
推荐阅读
- vue.js - 仅在 nuxt 应用程序中使用 json 中的某些字段
- heroku - Heroku 应用程序正在崩溃代码 H10 错误 503
- ios - 无法使用 PluginError 初始化 Amplify:无法解码配置
- python - 是否有任何理由在 Pandas 的方法名称“read_csv”中保留扩展名“csv”?
- python - 在没有 Internet 访问权限的情况下使用 GRPC python 并为自定义 Linux 发行版安装 pip
- visual-studio-code - Visual Studio Code 扩展:将外部片段拖放到编辑器中
- c++ - STL 通用算法 - 范围元素类型到谓词参数类型的隐式转换
- python - 如何使用 Python 将多个 Excel 工作簿合并到一个工作簿中
- xaml - 无法关闭 Xamarin Forms 中单击事件的弹出窗口
- python - Python线性回归组合问题