diff --git a/docs/releases/1.7.2.txt b/docs/releases/1.7.2.txt index 207b7d2a0c..976210367d 100644 --- a/docs/releases/1.7.2.txt +++ b/docs/releases/1.7.2.txt @@ -51,8 +51,11 @@ Bugfixes (:ticket:`23420`). * Fixed a migration serializing bug involving ``float("nan")`` and - ``float("inf")`` (:ticket:23770:). + ``float("inf")`` (:ticket:`23770`). * Fixed a regression where custom form fields having a ``queryset`` attribute but no ``limit_choices_to`` could not be used in a :class:`~django.forms.ModelForm` (:ticket:`23795`). + +* Fixed a custom field type validation error with MySQL backend when + ``db_type`` returned ``None`` (:ticket:`23761`). diff --git a/tests/invalid_models_tests/test_custom_fields.py b/tests/invalid_models_tests/test_custom_fields.py new file mode 100644 index 0000000000..03e65b599b --- /dev/null +++ b/tests/invalid_models_tests/test_custom_fields.py @@ -0,0 +1,20 @@ +from django.db import models + +from .base import IsolatedModelsTestCase + + +class CustomFieldTest(IsolatedModelsTestCase): + + def test_none_column(self): + class NoColumnField(models.AutoField): + def db_type(self, connection): + # None indicates not to create a column in the database. + return None + + class Model(models.Model): + field = NoColumnField(primary_key=True, db_column="other_field") + other_field = models.IntegerField() + + field = Model._meta.get_field('field') + errors = field.check() + self.assertEqual(errors, [])