Django 1.3 - Beheer - Knop "Toevoegen" - kopieer de velden van de vorige modelinstantie

Ik kan dit om de een of andere reden niet vinden.

Wanneer u op de knop "Add_model Entry" op de beheerderspagina klikt, wil ik dat de meeste velden worden ingevuld met dezelfde waarden die de gebruiker in de vorige modelinstantie heeft geplaatst die zij hebben gemaakt en opgeslagen. (Ik geef niet om welke gebruikers, zo ongeveer het laatste (jongste) opgeslagen exemplaar van een model).

Use Case: de gebruiker maakt exemplaren van dit model in batchmodus, bijvoorbeeld 10 zeer vergelijkbare items, dus het zou erg handig zijn als de meeste informatie vooraf wordt ingevuld telkens wanneer ze op de knop 'Item toevoegen' klikken. Ze kunnen dit 3-4 keer per dag doen, als dat om een ​​of andere reden van belang is, en elke batch zou significant verschillende waarden hebben in de velden van de vorige batch, maar elke instantie in de batch zou vergelijkbaar zijn. Vandaar mijn gedachte om te prepopuleren met de laatst opgeslagen waarden.

Ingepast voorbeeld:


class person:
name= CharField => (obvious)
interests= CharField => Example (fly, skate, swim)
age_range= CharField => Example (old, middle, young)


batch 1 = mensen die vliegen en oud zijn

Jim Smith, Fly, Old
Sara Smith, Fly, Old
Larry Jones, Fly, Old


batch 2 = skaters

Sam Samuelson, Skate, Young
Alfred Bob, Skate, Old
Jon Jon, Skate, Old

Er is veel gelijkenis in elke batch, maar batches kunnen heel verschillend zijn. Dus ik denk dat ik een kopie van het eerder opgeslagen model nodig heb met een nieuwe id, (hier is geen overerving om mee om te gaan, maar er zijn ForeignKeys). Hoe voeg ik het toe aan de knop "Toevoegen"/site?

0

2 antwoord

U zou een aangepast ModelForm kunnen maken voor uw ModelAdmin met een __ init __ functie die zou controleren om te zien of er een exemplaar was code> opgegeven (als dat het geval is, betekent dit dat u een bestaand object bewerkt in plaats van een nieuw object te maken), en zo niet, zoekt u naar het nieuwste object en vult u het initiële dictaat in met de waarden die u uit die instantie hebt getrokken.

0
toegevoegd
Nee, ik denk niet dat je hier een oplossing voor een kant-en-klaar type zult vinden - dat is een aardige niche-use-case. Veel succes met het oplossen van uw probleem.
toegevoegd de auteur Michael C. O'Connor, de bron
OK - Ik zal het volgende week proberen, hoewel ik hoopte op een oplossing met batterijen. Dit is niet gebruikelijk, misschien ga ik helemaal fout - nieuw voor django - ik dacht dat ik het moeilijk had om de juiste zoekopdracht te vinden sleutelwoorden, dus ik vroeg het hier.
toegevoegd de auteur dale, de bron

Als tweede optie kunt u ook de Django-beheerder gebruiken Opslaan als -functionaliteit. Dit is niet precies wat u zoekt, maar het zou gebruikers in staat stellen om naar een vorig item te gaan, enkele velden te bewerken en dat als een nieuw object op te slaan, wat bijna hetzelfde effect zou hebben.

0
toegevoegd