У меня есть простой сайт электронной коммерции с продуктом и вариацией.Django ManyToMany Field или что-то еще?
Каждый вариант определенно будет иметь разные веса, и каждый вес будет иметь количество.
Я применил весовую модель с отношением ForeignKey к вариации, так как каждая вариация может иметь разные веса и каждый вес будет иметь количество.
class Weight(models.Model):
variation = models.ForeignKey(Variation)
size = models.DecimalField(decimal_places=3, max_digits=8,
validators=[MinValueValidator(Decimal('0.10'))])
quantity = models.PositiveIntegerField(null=True, blank=True, help_text="Select Quantity for this size")
Я добавил вес как встроенный и могу добавить несколько значений веса и количества в вариации. Пожалуйста, см. Это http://imgur.com/XLM6sQJ
Можно подумать, что это может быть возможно благодаря созданию вариации для каждого веса, но поскольку определено, что каждый продукт будет иметь разные веса, нет необходимости в создании вариации для каждого веса.
Теперь проблема, с которой я сталкиваюсь, заключается в том, что каждая вариация будет иметь разные веса, например, например. вариация может иметь вес 1lb, 2 lb, 3lb. Каждый из них создаст новые весовые объекты для каждого варианта. Это означает, что если другая вариация также имеет вес 1lb, 2 lb, 3lb, создаются новые объекты и НЕ используются уже существующие. Это приведет к огромной таблице db со многими значениями значений дубликатов. Это проблема, потому что существует ограниченное количество веса и количества, необходимое для любого продукта (вес = 1 фунт-100 фунтов и количество от 1 до 100), и поэтому их в идеале следует использовать повторно.
Чтобы избежать этого, я думаю, чтобы модель Weight с полем ManyToMany была изменена, а затем количество должно быть выпадающим для каждого выбранного веса. Это позволит хранить значения как веса, так и количества, и каждый продукт использует одни и те же значения в каждом экземпляре.
Проблема у меня есть:
1. Правильно ли это?
2. Если нет, то какой лучший подход для этого?
3. Если это правильный подход, как это сделать?
4. Если это правильный подход, как отобразить это на сайте администратора, так как каждый вес также должен иметь количество (я не знаю, как это сделать)?
5. Есть ли лучший способ достичь этого, и если да, то как?
спасибо, что ответили. Это не полностью решает проблему, так как с каждым весом я должен также установить количество. В приведенном выше сценарии каждый экземпляр модели вариаций может иметь несколько весов, но может иметь только одно количество, тогда как мне также необходимо иметь количество, основанное на параметрах веса. – Uma
Вы можете создать два разных соотношения для веса и количества. Я обновил ответ. – kt14