У меня есть отношения со многими ссылками на себя, которые включают сквозную модель.Продукты состоят из других продуктов, в том числе количество (т. Е. Винт сделан из железных прутьев).Я сделал сквозную модель, хотя я не могу получить доступ к полю «сумма» в сквозной модели:
Код модели:
from django.db import models
class Product(models.Model):
name = models.CharField(max_length=200, unique=True)
produced = models.IntegerField(default=0)
speed = models.IntegerField()
type = models.CharField(max_length=200)
ingredients = models.ManyToManyField('self', through='RecipeComponent', symmetrical=False)
def __str__(self):
return self.name
class RecipeComponent(models.Model):
item = models.ForeignKey(Product, on_delete=models.CASCADE, related_name="item")
ingredient = models.ForeignKey(Product, on_delete=models.CASCADE, related_name="ingredient")
amount = models.IntegerField()
def __str__(self):
return str(self.amount) + " of " + self.ingredient.name
I 'Мы пробовали ряд других запросов, но, как вы видите, они, похоже, не сработали.Я знаю, что что-то упустил, но не могу понять, что это.
screw.ingredients.all()
>>> <QuerySet [<Product: iron_rod>]>
screw.ingredients.all()[0].amount
>>> Traceback (most recent call last):
>>> File "<input>", line 1, in <module>
>>> AttributeError: 'Product' object has no attribute 'amount'