我的mods.py中有一个名为Account的Model
在本例中,我想创建一个可以在其中 Select 我自己的Model对象的字段. 例如,如果我有3个帐户{Jack,Harry,Helena}
我想在他们之间 Select 我想要的帐户.事实上,我只想创造一个Following System.杰克可以跟随哈利和海伦娜,海伦娜也可以跟随杰克或哈利
我怎么能做到这一点,伙计们?

模型中的Account个类.py

class Account(models.Model):
    username = models.CharField(max_length=100)
    following = models.ManyToManyField(**Account**, blank=True)

推荐答案

要创建一个following系统,你可以使用Django的ManyToManyField.此字段用于创建多对多关系,即,一个对象可以属于多个类别,并且一个类别也将具有多个对象的关系.

在您的帐户模型中,您可以添加一个名为‘Following’的字段,并将其设置为‘self’的ManyToManyField值.这意味着一个帐户可以有许多其他帐户与其关联,这些帐户与它所关注的帐户相对应.

以下是您的代码的更正版本:

class Account(models.Model):
    username = models.CharField(max_length=100)
    following = models.ManyToManyField('self', blank=True, symmetrical=False)

这里使用"对称=假"的论点来表明,如果杰克在跟踪哈利,并不一定意味着哈利在跟踪杰克.

然后,您可以使用‘Following’字段上的Add()或Remove()方法添加或删除帐户.例如,如果您希望Jack跟随Harry,您可以执行以下操作:

jack = Account.objects.get(username='Jack')
harry = Account.objects.get(username='Harry')
jack.following.add(harry)

如果你想让杰克不再关注哈利,你可以这么做:

jack.following.remove(harry)

Python相关问答推荐

根据不同列的值在收件箱中移动数据

如果值不存在,列表理解返回列表

如何从在虚拟Python环境中运行的脚本中运行需要宿主Python环境的Shell脚本?

如何将Docker内部运行的mariadb与主机上Docker外部运行的Python脚本连接起来

无法定位元素错误404

avxspan与pandas period_range

如何在WSL2中更新Python到最新版本(3.12.2)?

NumPy中条件嵌套for循环的向量化

不允许访问非IPM文件夹

joblib:无法从父目录的另一个子文件夹加载转储模型

启用/禁用shiny 的自动重新加载

如何在TensorFlow中分类多个类

如何在两列上groupBy,并使用pyspark计算每个分组列的平均总价值

每次查询的流通股数量

如何从数据框列中提取特定部分并将该值填充到其他列中?

PYTHON中的pd.wide_to_long比较慢

如何在Polars中创建条件增量列?

删除另一个div中的特定div容器

PYODBC错误(SQL包含-26272个参数标记,但提供了235872个参数,HY 000)

Python:使用asyncio.StreamReader.readline()读取长行