Opened 2 years ago
Last modified 2 years ago
#34818 closed Bug
GenericIPAddressField ValidationError incorrect message when both protocols present — at Version 1
| Reported by: | minusf | Owned by: | |
|---|---|---|---|
| Component: | Database layer (models, ORM) | Version: | 4.2 |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Ready for checkin | |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description (last modified by )
It seems that the invalid code for GenericIPAddressField models gets clobbered when both protocols are present in a model:
class Site(models.Model):
ipv6 = models.GenericIPAddressField(protocol="IPv6")
ipv4 = models.GenericIPAddressField(protocol="IPv4")
>>> site = Site(ipv6="6", ipv4="4")
>>> site.full_clean()
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/src/tmp/ip_bug/venv/lib/python3.10/site-packages/django/db/models/base.py", line 1502, in full_clean
raise ValidationError(errors)
django.core.exceptions.ValidationError: {'ipv6': ['Enter a valid IPv4 address.'], 'ipv4': ['Enter a valid IPv4 address.']}
sometimes the other message wins:
ValidationError: {'ipv6': ['Enter a valid IPv6 address.'], 'ipv4': ['Enter a valid IPv6 address.']}
p.s. not sure about the component, perhaps could be "Database Layer: Models" or "Error reporting"?
Note:
See TracTickets
for help on using tickets.