@bituke

Как добавлять товары в «избранное» в django?

Очень запарился с этой задачей, специально для вопроса создал небольшой тестовый проект:
5f8703df77397764113746.png
Логика проста: есть приложение товаров, есть приложение любимых товаров, которые пользователь самостоятельно добавит.

имеется страница с товарами (созданные в базе данных через модели и выведенные через шаблонизатор):
5f870346b6439697217378.png

модель приложения:

from django.db import models

class Product(models.Model):
	'''таблица с товарами, имеет только столбик названий товаров'''

	name_product = models.CharField('название товара', max_length=50)

	def __str__(self):
		return self.name_product


вьюшка приложения:

from django.shortcuts import render
from .models import Product

def all_product(request):
	'''Функция, которая выводит все товары которые у нас имеются'''

	all_product = Product.objects.all

	context = {
		'all_product': all_product,
	}

	return render(request, 'products/all_products.html', context)


ну и шаблон приложения:

<h1>Товары в наличии:</h1>
	{% for i in all_product %}
		<p>{{ i }} <a href="/">добавить</a></p>
	{% endfor %}
	<a href="/favorite_products/">Перейти в любимые товары</a>


Требуется написать такую функцию, которая при нажатии на кнопку "добавить" добавит нужный товар в страницу "любимые товары", на данный момент она пуста.
5f8703a214cda241140915.png

Очень прошу помощи, пробовал много разных методов - все абсолютно кастыльные и нерабочие.
В идеале, нужно что бы при нажатии на "добавить" товар добавлялся в базу данных приложения favorite_products, а после таблица с добавленными товарами выводилась на ранее упомянутую страницу.
Заранее огромное спасибо.
  • Вопрос задан
  • 1330 просмотров
Решения вопроса 1
IDzone-x
@IDzone-x
Костыли сила паттерны могила
А не можно ли зделать просто так.
Допустим у нас есть модель под именем <имя>
Ми там создаём два поля, post и user который эго сохранил и оба они являются первичном ключом. дальше делаем форму думаю вы и сами сможете зделать:) и вюху.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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