我试图将我的model个对象中的一个设置为ManyToMany字段,这样我就可以通过两个模型访问对象.

我收到以下error份.

listing = models.ManyToMany(Listings, blank=True, related_name="listing")
AttributeError: module 'django.db.models' has no attribute 'ManyToMany'

models.py:

class WatchList(models.Model):
    listing = models.ManyToMany(Listings, blank=True, related_name="listing")
    user = models.ForeignKey(User, on_delete=models.CASCADE, default="")

推荐答案

字段名称为ManyToManyField [Django-doc],因此这包括ManyToManyField中的…Field:

from django.conf import settings

class WatchList(models.Model):
    listing = models.ManyToManyField(Listings, blank=True, related_name='watchlists')
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)

Note:通常最好使用settings.AUTH_USER_MODEL [Django-doc]来表示用户模型,而不是直接使用User model [Django-doc].有关更多信息,请参阅referencing the User model section of the documentation.


Note:related_name=… parameter [Django-doc]


Note:通常Django模型的名称是singular,所以是listing而不是listings.

Python相关问答推荐

numba jitClass,记录类型为字符串

使用miniconda创建环境的问题

输出中带有南的亚麻神经网络

Pandas—在数据透视表中占总数的百分比

形状弃用警告与组合多边形和多边形如何解决

计算分布的标准差

Python导入某些库时非法指令(核心转储)(beautifulsoup4."" yfinance)

SQLAlchemy bindparam在mssql上失败(但在mysql上工作)

用渐近模计算含符号的矩阵乘法

为什么\b在这个正则表达式中不解释为反斜杠

使用特定值作为引用替换数据框行上的值

使用Python查找、替换和调整PDF中的图像'

dask无groupby(ddf. agg([min,max])?''''

Cython无法识别Numpy类型

语法错误:文档. evaluate:表达式不是合法表达式

计算机找不到已安装的库'

Python—在嵌套列表中添加相同索引的元素,然后计算平均值

在pandas中,如何在由两列加上一个值列组成的枢轴期间或之后可靠地设置多级列的索引顺序,

如何让PYTHON上的Selify连接到现有的Firefox实例-我无法连接到Marionette端口

Pandas:新列,从列表中采样,基于列值