python - 自我模型上的多对多:如何向此关系添加新实例
问题描述
我有一个Profile
类,它扩展了User
该类,我希望每个profile
人都能够为其他用户配置文件添加书签。
我已经设置了以下内容:
class Profile(models.Model):
# some fields e.g. name, email
bookmarked_profiles = models.ManyToManyField("self")
现在,我有点困惑,例如,我如何为给定的配置文件实例“标记”新配置文件?
例如像
# add new bookmark for profile instance
p = Profile.objects.get(pk=1)
profiles_to_bookmark = Profile.objects.all()
p.bookmarked_profiles = profiles_to_bookmark
我还想知道书签配置文件的数量,例如
p.bookmarked_profiles.count()
解决方案
检查 django 文档,那里有你需要的一切
for profile in profiles_to_bookmark:
p.bookmarked_profiles.add(profile) # WIll add New objects
p.bookmarked_profiles.all() # Will return all objects
p.bookmarked_profiles.all().count() # Will return count of objects
https://docs.djangoproject.com/en/2.0/topics/db/examples/many_to_many/强文本
推荐阅读
- hive - 将参数传递给 HIVE 查询
- material-ui - Material-UI:对话框内的下拉(选择控件)问题
- android - 如果我在为家庭设计的应用程序中使用 Google Analytics 和 Firebase 服务(例如 FCM、Firebase Analytics)会违反 COPPA 政策吗?
- javascript - 在三个 JS 中相交数组为空
- recursion - 通过“for循环”在Maple中定义递归关系
- java - 从 .txt 文件中读取数据并保存为类变量
- mysql - 如何为单列上的不同值获取有限的数据集?
- javascript - 手动选择输入日期到最大值返回未定义
- android - FAB 内的中心图像
- raku - .wrap sub 之后的错误 Signature.ACCEPTS