我试图创建单一的循环,将迭代通过每个类别的每个产品的所有大小.我的模特:

class Category(models.Model):
    ...

class Product(models.Model):
    category = models.ForeignKey(Category, db_column="id", on_delete=models.CASCADE, related_name="products")
    ...

class Size(models.Model):
    product = models.ForeignKey(Product, db_column="id", on_delete=models.CASCADE, related_name="sizes")
    ...

和我的代码在服务中

def adjust_sizes(self, category: Category) -> None:
    for size in category.products.sizes.all():
        # rest of my function

但当我try 运行此函数时,出现错误:

*** AttributeError: 'RelatedManager' object has no attribute 'sizes'

我想让它单圈运行,有人能帮我吗?

推荐答案

您不能在管理器之上访问管理器.在本例中,您所做的是反向查询,因此:

def adjust_sizes(self, category: Category) -> None:
    for size in Size.objects.filter(product__category=category):
        # rest of my function
        pass

然而,使用db_column='id'很可能是个好主意,因为它可能/将与主键的数据库列冲突.

Django相关问答推荐

在Django中使用Generil.ListView类时,分页不起作用

通过父模型查询子对象-Django

如何保护单个数据库行/模型实例?

情节主题更改问题

ModuleNotFoundError:没有名为guardian.shortcuts的模块

使用django提交后如何保留html表单数据?

如何在 django 中处理这种竞争条件?

具有基于类的视图的 cache_page

在基于类的通用视图 CreateView 中访问 request.user 以便在 Django 中设置 FK 字段

django excel xlwt

在 virtualenv Ubuntu 12.10 中使用 pip 安装 lxml 错误:command 'gcc' failed with exit status 4

可以在 Django 抽象模型中使用多重继承吗?

Django:访问给定字段的 Select 元组

Django 存储匿名用户数据

settings.DATABASES 配置不正确使用 django 1.4 执行 syncdb 时出错

有日期时间±无穷大吗?

Django查询否定

找不到 msguniq.确保您安装了 GNU gettext 工具 0.15 或更新版本. (Django 1.8 和 OSX ElCapitan)

Django将整数模型字段的范围设置为约束

django.urls.path中name参数的作用是什么?