python / intermediate
Snippet
Ausführung asynchroner Modell-Persistierung mit der Django-Methode asave
Django bietet asynchrone Modellmethoden wie asave() an, um Modellinstanzen direkt aus asynchronen Ausführungskontexten zu speichern, ohne sync_to_async-Wrapper zu benötigen.
snippet.py
python
1
2
3
4
5
6
7
8
9
import asynciofrom myapp.models import AuditLogasync def record_log_entry(action_name: str, user_id: int):log_entry = AuditLog(action=action_name, user_id=user_id)await log_entry.asave()return log_entry.idasyncio.run(record_log_entry("USER_LOGIN", 42))
django
Erklärung
1
log_entry = AuditLog(action=action_name, user_id=user_id)
Instanziiert ein Modellobjekt im Speicher, ohne einen Datenbankaufruf zu tätigen.
2
await log_entry.asave()
Speichert den Datensatz asynchron und nicht-blockierend in der Datenbank innerhalb der Ereignisschleife.
3
return log_entry.id
Greift auf den automatisch generierten Primärschlüssel zu, der nach der erfolgreichen Einfügung zugewiesen wurde.