From d95a0144e532f6ad30c0840b723f6d3928e6d1ad Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Tue, 24 Aug 2021 16:16:44 +0200 Subject: [PATCH] [3.2.x] Used backend vendors in custom model fields docs. Backport of d7394cfa13a4d1a02356e3a83e10ec100fbb9948 from main --- docs/howto/custom-model-fields.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/howto/custom-model-fields.txt b/docs/howto/custom-model-fields.txt index 2572b2ed39f..d3692f03256 100644 --- a/docs/howto/custom-model-fields.txt +++ b/docs/howto/custom-model-fields.txt @@ -394,13 +394,14 @@ If you aim to build a database-agnostic application, you should account for differences in database column types. For example, the date/time column type in PostgreSQL is called ``timestamp``, while the same column in MySQL is called ``datetime``. You can handle this in a :meth:`~Field.db_type` method by -checking the ``connection.settings_dict['ENGINE']`` attribute. +checking the ``connection.vendor`` attribute. Current built-in vendor names +are: ``sqlite``, ``postgresql``, ``mysql``, and ``oracle``. For example:: class MyDateField(models.Field): def db_type(self, connection): - if connection.settings_dict['ENGINE'] == 'django.db.backends.mysql': + if connection.vendor == 'mysql': return 'datetime' else: return 'timestamp'