W interfejsie administracyjnym Django, czy istnieje sposób, aby powielić element?

głosy
49

Po prostu zastanawiasz się, jeśli istnieje łatwy sposób na dodanie funkcjonalności do powielić istniejącego ogłoszenia w interfejsie administratora?

W wprowadzania danych jakie napotkasz sytuacji, w której wiele elementów udostępniania danych rodzajowe z innej pozycji, aby zaoszczędzić czas i byłoby bardzo miło szybko powielić istniejący oferty i tylko zmieniają zmienionych danych. Korzystanie z lepszą strukturę modelu byłoby jednym ze sposobów ograniczenia powielania danych, ale może być sytuacja, w której potrzebuje powielone dane mają być zmieniane indywidualnie w przyszłości.

Utwórz 08/10/2008 o 00:23
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
84

Można zapisać jako po prostu umożliwiające dodanie tego do swojej ModelAdmin:

save_as = True

Zastępuje „Zapisz i dodaj kolejny” przycisk z „Zapisz jako” przycisk. „Zapisz jako” oznacza, że ​​obiekt zostanie zapisany jako nowy obiekt (z nowym ID), zamiast starego obiektu.

Odpowiedział 08/10/2008 o 00:26
źródło użytkownik

głosy
0

Jest lepiej (ale nie wbudowane) rozwiązanie tutaj:

https://github.com/RealGeeks/django-modelclone

Z ich README:

Django Admin posiada save_asfunkcję, która dodaje nowy przycisk do zmiany strony, aby zapisać nową instancję tego obiektu.

Nie podoba mi się sposób, w jaki ta funkcja działa, ponieważ można zaoszczędzić identyczną kopię oryginalnego obiektu (jeśli nie pojawiają się błędy walidacji) jak najszybciej po kliknięciu tego łącza, a jeśli zapomnisz zrobić małe zmiany, które chciał w nowym obiekcie będzie w końcu z duplikatu istniejącego obiektu.

Z drugiej strony, Django-modelclone oferuje pośrednią zdaniem zasadniczo wstępnie wypełnia formularz dla Ciebie. Więc można modyfikować, a następnie zapisać nową instancję. Albo po prostu odejść bez skutków ubocznych.

Odpowiedział 10/04/2018 o 11:10
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more