У меня есть модель, представляющая некоторый товар на складе:
(code был упрощен)
Таким образом, каждый StockItem может существовать на разных складах, но с разным оставшимся количеством. Есть ли способ создать ModelResource для экспорта оставшегося количества для каждого склада?
Пример таблицы:
Мой ModelResource:
Я пытался переопределить метод __init__
, но, вероятно, сделал это неправильно.
class StockItem(models.Model):
name = models.CharField()
category = models.Charfield()
stock = models.ForeignKey(Stock) # <- Here is few stocks
quantity = models.IntegerField(default=0)
+----+--------+----------+---------+---------+
| ID | Name | Category | Stock A | Stock B |
+----+--------+----------+---------+---------+
| 1 | Item 1 | Cat 1 | 1 | 1 |
| 2 | Item 2 | Cat 2 | 10 | 8 |
| 3 | Item 3 | Cat 3 | 14 | 32 |
+----+--------+----------+---------+---------+
class StockItemsRemainingsResource(resources.ModelResource):
class Meta:
model = models.StockItem
fields = ('name', 'category')
def __init__(self):
super().__init__()
for item in self.get_queryset():
stock_name = item.stock.name
self.fields[f"quantity_{stock_name}"] = fields.Field(
attribute="quantity",
column_name=stock_name,
widget=widgets.ForeignKeyWidget(
models.Stock,
"pk"
)
)
Раиса
Вопрос задан15 апреля 2024 г.