Форум сайта python.su
Пишу простенький магазинчик. Встал такой вопрос - нужно организовать корзину заказов. Предполагается, что по завершению процедуры заказа, таблица с данными корзины будет подчищаться. Не могу определиться как это лучше сделать:
Расширить модель user и добавить столбец где будут храниться id товаров;
Написать новую полноценную модель, связать ее с user и в полях этой модели хранить id товаров;
Какой вариант наиболее оптимальный и менее трудоёмкий, может есть уже какие-то готовые решения или что-то в таком духе?
Отредактировано SorrowFuck (Окт. 16, 2012 10:19:53)
Офлайн
>>>Расширить модель user и добавить столбец где будут храниться id товаров;
Это как Вы видите, хотите хранить список этих айдишников строкой?
Не лучше ли в модель товаров добавит ManyToMany поле с реляцией на юзера?
Офлайн
FishHookТо есть на сколько я понял, ManyToMany будет создавать отдельную таблицу для каждого юзера связанного с определенным товаром (который он заказал)?
>>>Расширить модель user и добавить столбец где будут храниться id товаров;
Это как Вы видите, хотите хранить список этих айдишников строкой?
Не лучше ли в модель товаров добавит ManyToMany поле с реляцией на юзера?
Отредактировано SorrowFuck (Окт. 16, 2012 16:34:13)
Офлайн
SorrowFuckБудет одна дополнительная таблица
То есть на сколько я понял, ManyToMany будет создавать отдельную таблицу для каждого юзера связанного с определенным товаром (который он заказал)?
Офлайн
FishHookSorrowFuckБудет одна дополнительная таблица
То есть на сколько я понял, ManyToMany будет создавать отдельную таблицу для каждого юзера связанного с определенным товаром (который он заказал)?
id —- user_id—-product_id
С помощью ORM Django Вы сможете деталь запросы хоть по юзеру хоть по товару не заморачиваясь тем, как это представлено в БД, собственно мануал в помощь.
RTFM
Офлайн
Написал вот такую модель:
class GoodsDescription(models.Model): type = models.ForeignKey(GoodsType, unique=True) basket = models.ManyToManyField(User, unique=False, null=True) title = models.CharField(max_length=50, unique=False) image = models.ImageField(upload_to="description") description = models.TextField(max_length=4000) characteristics = models.TextField(max_length=4000) review = models.TextField(max_length=4000) number = models.IntegerField()
goods = GoodsDescription.objects.filter(title=some_title) user = User.objects.filter(username=user_name) g = GoodsDescription(id=goods.id) u = User(id=user.id) g.basket.add(g)
Офлайн
basket = models.ManyToManyField(User, unique=False, null=True, blank=True)
Отредактировано FishHook (Окт. 17, 2012 07:13:42)
Офлайн
FishHookbasket = models.ManyToManyField(User, unique=False, null=True, blank=True)
Офлайн