frappe.db.get_list(doctype, filters, or_filters, fields, order_by, group_by, start, page_length)
frappe.get_listRetourne une liste de document d'une table de doctype. Il s'agit d'un habillage pour une requête SELECT.
Prend également en compte les autorisations de l'utilisateur de la session.
frappe.db.get_list('Task',
filters={
'status': 'Open'
},
fields=['subject', 'date'],
order_by='date desc',
start=10,
page_length=20,
as_list=True
)
# résultat
(('Mettre à jour le branding et le design', '2020-09-04'),
('Documentation manquante', '2020-09-02'),
('Levée de fonds pour la fondation', '2020-09-03'))
# Tâches avec une date après le 08/09/2020
frappe.db.get_list('Task', filters={
'date': ['>', '2019-09-08']
})
# Tâches avec un sujet contenant le mot "test"
frappe.db.get_list('Task', filters={
'subject': ['like', '%test%']
})
# Compter le nombre de tâches groupées par statut
frappe.db.get_list('Task',
fields=['count(name) as count', 'status'],
group_by='status'
)
# résultat
[{'count': 1, 'status': 'Working'},
{'count': 2, 'status': 'Overdue'},
{'count': 2, 'status': 'Open'},
{'count': 1, 'status': 'Filed'},
{'count': 20, 'status': 'Completed'},
{'count': 1, 'status': 'Cancelled'}]
frappe.db.get_all(doctype, filters, or_filters, fields, order_by, group_by, start, page_length)
frappe.get_allIdentique à frappe.db.get_list mais récupèrera les entrées sans prendre en compte les autorisations de l'utilisateur de la session.
frappe.db.get_value(doctype, name, fieldname) or frappe.db.get_value(doctype, filters, fieldname)
frappe.get_value et frappe.db.get_valuesRetourne la valeur d'un champ d'un document ou une liste de valeurs.
# valeur simple
sujet = frappe.db.get_value('Task', 'TASK00002', 'subject')
# valeurs multiples
sujet, description = frappe.db.get_value('Task', 'TASK00002', ['subject', 'description'])
# dictionnaire
task_dict = frappe.db.get_value('Task', 'TASK00002', ['subject', 'description'], as_dict=1)
task_dict.subject
task_dict.description
# avec des filtres, retourne la première entrée correpondant à ces filtres
subject, description = frappe.db.get_value('Task', {'status': 'Open'}, ['subject', 'description'])
frappe.db.get_single_value(doctype, fieldname)
Retourne une valeur de champ d'une type de document unique.
timezone = frappe.db.get_single_value('System Settings', 'timezone')
frappe.db.set_value(doctype, name, fieldname, value)
frappe.db.updateRenseigne la valeur d'un champ dans la base de donnée, n'appelle par les logiques de l'ORM mais mets à jour l'horodatage modifié (sauf si explicitement contre-indiqué).
# mise à jour de la valeur d'un champ
frappe.db.set_value('Task', 'TASK00002', 'subject', 'New Subject')
# mise à jour de la valeur de plusieurs champ
frappe.db.set_value('Task', 'TASK00002', {
'subject': 'New Subject',
'description': 'New Description'
})
# mise à jour dans modifier l'horodatage
frappe.db.set_value('Task', 'TASK00002', 'subject', 'New Subject', update_modified=False)
Cette méthode ne déclenchera les logiques associées à l'ORM comme
validateeton_update.
Utilisez cette méthod pour mettre à jour des champs cachés ou si vous êtes certains de ce que vous faites.
frappe.db.exists(doctype, name)
Renvoi true si l'enregistrement existe.
# vérifie si un enregistrement existe grâce à son nom
frappe.db.exists('Task', 'TASK00002') # True
# vérifie si un enregistrement existe grâce à des filtres
frappe.db.exists({
'doctype': 'Task',
'status': 'Open',
'subject': 'New Task'
})
frappe.db.count(doctype, filters)
Renvoi le nombre d'enregistrements pour un doctype et des filtres donnés.
# nombre total de Tâches
frappe.db.count('Task')
# nombre total de tâches ouvertes
frappe.db.count('Task', {'status': 'Open'})
frappe.db.delete(doctype, filters)
Supprime un enregistrement d'un doctype correspondant aux filtres passés.
frappe.db.delete('Task', {
'status': 'Cancelled'
})
frappe.db.commit()
Valide la transaction en cours. Déclenche la requête SQL COMMIT.
Dodock lancera automatiquement
frappe.db.commit()à la fin d'une requête web de typePOSTouPUTréussie. Par contre elle ne sera pas lancée pour les requêtesGET.Vous n'avez pas besoin d'appeler cette méthode explicitement la plupart du temps, mais vous pouvez l'appeler pour valider vos transactions en plusieurs fois.
frappe.db.rollback()
Rollback de la transaction en cours. Déclenche la requête SQL ROLLBACK.
Doock va automatiquement déclencher
frappe.db.rollback()si une exception est générée pendant une requête web de typePOSTouPUT. Utilisez cette méthode si vous avez besoin de faire un rollback plus tôt dans une transaction.