Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Как лучше организовать хранение временной информации в БД с помощью моделей? [RSS Feed]

#1 Окт. 16, 2012 10:18:30

SorrowFuck
От: Хабаровск
Зарегистрирован: 2012-10-10
Сообщения: 64
Репутация: +  2  -
Профиль   Отправить e-mail  

Как лучше организовать хранение временной информации в БД с помощью моделей?

Пишу простенький магазинчик. Встал такой вопрос - нужно организовать корзину заказов. Предполагается, что по завершению процедуры заказа, таблица с данными корзины будет подчищаться. Не могу определиться как это лучше сделать:
Расширить модель user и добавить столбец где будут храниться id товаров;
Написать новую полноценную модель, связать ее с user и в полях этой модели хранить id товаров;
Какой вариант наиболее оптимальный и менее трудоёмкий, может есть уже какие-то готовые решения или что-то в таком духе?



_________
Новичок

Отредактировано SorrowFuck (Окт. 16, 2012 10:19:53)

Офлайн

#2 Окт. 16, 2012 14:10:44

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как лучше организовать хранение временной информации в БД с помощью моделей?

>>>Расширить модель user и добавить столбец где будут храниться id товаров;
Это как Вы видите, хотите хранить список этих айдишников строкой?
Не лучше ли в модель товаров добавит ManyToMany поле с реляцией на юзера?



Офлайн

#3 Окт. 16, 2012 15:38:39

SorrowFuck
От: Хабаровск
Зарегистрирован: 2012-10-10
Сообщения: 64
Репутация: +  2  -
Профиль   Отправить e-mail  

Как лучше организовать хранение временной информации в БД с помощью моделей?

FishHook
>>>Расширить модель user и добавить столбец где будут храниться id товаров;
Это как Вы видите, хотите хранить список этих айдишников строкой?
Не лучше ли в модель товаров добавит ManyToMany поле с реляцией на юзера?
То есть на сколько я понял, ManyToMany будет создавать отдельную таблицу для каждого юзера связанного с определенным товаром (который он заказал)?



_________
Новичок

Отредактировано SorrowFuck (Окт. 16, 2012 16:34:13)

Офлайн

#4 Окт. 16, 2012 16:09:50

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как лучше организовать хранение временной информации в БД с помощью моделей?

SorrowFuck
То есть на сколько я понял, ManyToMany будет создавать отдельную таблицу для каждого юзера связанного с определенным товаром (который он заказал)?
Будет одна дополнительная таблица
id —- user_id—-product_id
С помощью ORM Django Вы сможете деталь запросы хоть по юзеру хоть по товару не заморачиваясь тем, как это представлено в БД, собственно мануал в помощь.
RTFM



Офлайн

#5 Окт. 16, 2012 16:42:38

SorrowFuck
От: Хабаровск
Зарегистрирован: 2012-10-10
Сообщения: 64
Репутация: +  2  -
Профиль   Отправить e-mail  

Как лучше организовать хранение временной информации в БД с помощью моделей?

FishHook
SorrowFuck
То есть на сколько я понял, ManyToMany будет создавать отдельную таблицу для каждого юзера связанного с определенным товаром (который он заказал)?
Будет одна дополнительная таблица
id —- user_id—-product_id
С помощью ORM Django Вы сможете деталь запросы хоть по юзеру хоть по товару не заморачиваясь тем, как это представлено в БД, собственно мануал в помощь.
RTFM

Спасибо, прочитаю.



_________
Новичок

Офлайн

#6 Окт. 17, 2012 07:07:19

SorrowFuck
От: Хабаровск
Зарегистрирован: 2012-10-10
Сообщения: 64
Репутация: +  2  -
Профиль   Отправить e-mail  

Как лучше организовать хранение временной информации в БД с помощью моделей?

Написал вот такую модель:

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()

Предполагаю что с помощью такого отрывка в вью можно будет ассоциировать
товары с user, тем самым получив модель для корзины:
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)

Когда я заполняю формы через административный интерфейс поле User обязательное для заполнения, как это исправить?



_________
Новичок

Офлайн

#7 Окт. 17, 2012 07:13:23

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как лучше организовать хранение временной информации в БД с помощью моделей?

basket = models.ManyToManyField(User, unique=False, null=True, blank=True)



Отредактировано FishHook (Окт. 17, 2012 07:13:42)

Офлайн

#8 Окт. 17, 2012 07:54:57

SorrowFuck
От: Хабаровск
Зарегистрирован: 2012-10-10
Сообщения: 64
Репутация: +  2  -
Профиль   Отправить e-mail  

Как лучше организовать хранение временной информации в БД с помощью моделей?

FishHook
basket = models.ManyToManyField(User, unique=False, null=True, blank=True)


Спасибо.



_________
Новичок

Офлайн

  • Начало
  • » Django
  • » Как лучше организовать хранение временной информации в БД с помощью моделей?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version