De gegevens in de database bijwerken
Met de volgende methoden en functies kunt u bestaande gegevens in de database bijwerken.
-
update(each: bool = False, **kwargs) -> int -
update_or_create(**kwargs) -> Model -
bulk_update(objects: List[Model], columns: List[str] = None) -> None -
model
- Model.update () methode
- Model.upsert () methode
- Model.save\ _ lated () methode
-
Query instellen Agent
-
QuerysetProxy.update_or_create(**kwargs)werkwijze
bijwerken
update(each: bool = False, **kwargs) -> int
Updates op QuerySet-niveau worden gebruikt om meerdere records met dezelfde waarde tegelijk bij te werken.
U moet eerst de QuerySet filteren of de vlag each = True opgeven om de hele tabel bij te werken.
Als u deze vlag of filter niet opgeeft, wordt QueryDefinitionError verhoogd.
Retourneert het bijgewerkte aantal rijen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | |
!!!Waarschuwing, de queryset moet worden gefilterd voordat deze wordt bijgewerkt om onbedoeld overschrijven te voorkomen.
1 | |
Bijwerken of aanmaken
update_or_create(**kwargs) -> Model
Werk het model bij of maak een nieuw model als er geen overeenkomst is in de database.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | |
Merk op dat als u een nieuw object wilt maken, u de pk-kolomwaarde moet doorgeven of dat de pk-kolom moet worden ingesteld op automatisch verhogen
batch-update
bulk_update(objects: List["Model"], columns: List[str] = None) -> None
Hiermee kunnen meerdere instanties tegelijkertijd worden bijgewerkt.
Alle goedgekeurde modellen moeten worden gevuld met primaire sleutelkolommen.
U kunt ook de velden selecteren die u wilt bijwerken door de kolomlijst door te geven als een lijst met snaarnamen.
1 2 3 4 5 6 7 8 9 10 11 | |
model werkwijze
Elk modelexemplaar heeft een set methoden om zichzelf op te slaan, bij te werken of te laden.
# # bijwerken
U kunt een model bijwerken door de eigenschappen (velden) bij te werken en de update () -methode aan te roepen.
Als u probeert het model bij te werken zonder de primaire sleutel in te stellen, wordt ModelPersistenceError uitzondering gegenereerd.
!!!Tip Lees meer over de update () methode in modellen-update
# # update invoegen
Het is een proxy voor de save () of update (**kwargs) -methoden van het model. Als pk is ingesteld, wordt de update () -methode aangeroepen.
!!!Tip Lees meer over de upsert () methode in modellen-upsert
# # opslaan gerelateerd
De methode herhaalt alle relaties van het model dat de methode heeft aangeroepen en roept de upsert () -methode aan op elk niet-opgeslagen model.
!!!Tip Lees meer over de methode opslaan\ _ lated () in modellen-opslaan-lated
QuerysetProxy methode
Wanneer u rechtstreeks toegang krijgt tot de relevante ManyToMany-velden en ReverseForeignKey, wordt een lijst met gerelateerde modellen geretourneerd.
Maar het toont ook een subset van de QuerySet API, zodat u rechtstreeks vanuit het bovenliggende model kunt filteren, maken, gerelateerde modellen kunt selecteren, enz.
Bijwerken of aanmaken
De update\ _ or\ _ create-functie is precies hetzelfde als hierboven, maar stelt u in staat om gerelateerde objecten vanaf het andere uiteinde van de relatie bij te werken of te maken.
Ga