Django - zapisanie nazwy obiektu przed jego usunięciem

0

Cześć, uczę się django i tworzę taki projekt w którym mam sklep a w nim produkty(czyli stworzyłem 2 modele). Stworzyłem stronkę która ma listę wszystkich produktów ze sklepu oraz mam między innymi widok w którym można za pomocą kliknięcia usunąć produkt ze sklepu, bez zbędnego wchodzenia w edycję sklepu i bez usuwania go ogólnie z bazy, lecz tylko z tego konkretnego sklepu:

def del_product(request, shop_pk, product_pk):
shop = get_object_or_404(Shop, pk=pk)
product = get_object_or_404(Product, pk=pk)
shop.product.remove(product)
return redirect("shop", pk=shop.pk)

Nie wiem natomiast jak zabrać się do tego, aby przed usunięciem zapisać nazwę tego produktu abym mógł go sobie później wyświetlać na stronie (nie tylko na tej stronie bezpośrednio po skasowaniu, ale też np. po skasowaniu jeszcze innych produktów, czyli np: skasuję marchew, później czekoladę, później sok a na stronie cały czas będę miał możliwość wyświetlenia nazwy marchwi). Dla ułatwienia chcę tak zrobić tylko z pierwszym usuwanym produktem. Czy ktoś mógłby mnie jakoś naprowadzić? Czy trzeba stworzyć do tego nowy widok, czy może wystarczy w tym dopisać jakąś linię kodu? Z góry dziękuję :)

0

Nie do końca czaję co dokładnie chcesz osiągnąć, ale:

  1. Najlepiej zapisać nazwę do zmiennej przed wywołaniem funkcji, która usuwa obiekt.
product_name = product.name
del_product(product)
  1. Według mnie powinieneś do funkcji usuwającej produkt, podawać jedynie jego ID, które generalnie w Django masz dostępne, bo Django do każdego modelu dokleja id, jako primary key. Twoja funkcja powinna dostawać ID produktu, wyszukiwać go w bazie i usuwać.
  2. Piszesz, że chcesz usunąć produkt, ze sklepu, ale nie z bazy danych. No ale gdzie trzymasz listę produktów dla danego sklepu? Chyba w jakiejś bazie danych, tak? Być może powinieneś stworzyć trzeci model w stylu ShopProduct, który miałby klucze obce do sklepu i przypisywał produkt do sklepu. Trzymałbyś wtedy osobno sklepy, produkty i ich wzajemne powiązania.

Mam nadzieję, że chociaż odrobinę pomogłem, ale jestem jeszcze przed pierwszą kawą i ciężko mi się myśli :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1