@asmodeus13th

Как автоматически привязать модель заказа к User?

Хорошего времени суток! У меня есть модели: кастомный пользователь (Account) и заказ (Order). Когда пользователь создаёт заказ, то последний должен автоматически добавиться в базу данных к пользователю. Для тех, кто не понимает о каких связях идёт речь: https://djbook.ru/rel1.9/ref/models/fields.html

Логика работы:
Я, пользователь, регистрируюсь на сайте (модель Account). Теперь у меня есть страница профиля. Я выбираю товар, добавляю в корзину (модель Cart) и подтверждаю заказ. Теперь заказ есть в базе данных (модель Order).
Что нужно добавить:
На странице профиля (модель Account) должен появиться заказ (модель Order).

Как я решал:
в модель Account добавил связь ManyToManyField(Order). Теперь создав заказ, я могу его подключить к пользователю (через админку).
Но! Я не хочу делать это вручную. Есть ли способ, чтобы при создании заказа, в модели Account автоматически выделялся заказ?
Думаю, я смог правильно передать мысль. Для примера, есть аналогии:
1. при создании поста для блога, автор - пользователь, который пишет этот пост;
2. при создании комментария в статьи, автор - пользователь, который пишет этот комментарий и т.д.
  • Вопрос задан
  • 257 просмотров
Решения вопроса 1
Tomio
@Tomio
backend developer (python, php)
А зачем вам тут связь MAnyToMany? У вас разве у одного заказа может быть несколько пользователей?)
Вам нужна простая связь OneToMany. В модели Order создаете поле account = fireld.ForeignKey(Account, related_name='accounts_order'), и в него будете записывать объект Account при заказе.
Далее на странице профиля выводите account_obj.accounts_order.all()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы