mirror of
https://github.com/django/django.git
synced 2025-10-31 09:41:08 +00:00
Fixed #22001 -- Ensure db_type is respected.
db_parameters should respect an already existing db_type method and return that as its type string. In particular, this was causing some fields from gis to not be generated. Thanks to @bigsassy and @blueyed for their work on the patch. Also fixed #22260
This commit is contained in:
@@ -74,3 +74,8 @@ class JSONField(six.with_metaclass(models.SubfieldBase, models.TextField)):
|
||||
if value is None:
|
||||
return None
|
||||
return json.dumps(value)
|
||||
|
||||
|
||||
class CustomTypedField(models.TextField):
|
||||
def db_type(self, connection):
|
||||
return 'custom_field'
|
||||
|
||||
@@ -3,9 +3,10 @@ from __future__ import unicode_literals
|
||||
import inspect
|
||||
|
||||
from django.core import serializers
|
||||
from django.db import connection
|
||||
from django.test import TestCase
|
||||
|
||||
from .fields import Small
|
||||
from .fields import Small, CustomTypedField
|
||||
from .models import DataModel, MyModel, OtherModel
|
||||
|
||||
|
||||
@@ -104,3 +105,10 @@ class CustomField(TestCase):
|
||||
data = dict(inspect.getmembers(MyModel))
|
||||
self.assertIn('__module__', data)
|
||||
self.assertEqual(data['__module__'], 'field_subclassing.models')
|
||||
|
||||
|
||||
class TestDbType(TestCase):
|
||||
|
||||
def test_db_parameters_respects_db_type(self):
|
||||
f = CustomTypedField()
|
||||
self.assertEqual(f.db_parameters(connection)['type'], 'custom_field')
|
||||
|
||||
Reference in New Issue
Block a user