#30409: System check E012 erroneously raised when ForeignKey is used in compound index ------------------------------------------------+------------------------ Reporter: tr00st | Owner: nobody Type: Bug | Status: new Component: Core (System checks) | Version: 2.2 Severity: Normal | Keywords: Triage Stage: Unreviewed | Has patch: 0 Needs documentation: 0 | Needs tests: 0 Patch needs improvement: 0 | Easy pickings: 0 UI/UX: 0 | ------------------------------------------------+------------------------ Looks to be an issue with the implementation in #28714 - issue found whilst upgrading from 2.0 to 2.2, but also occurs in latest 2.1.x.
To duplicate, create a compound index including the ID for a ForeignKey, eg: {{{#!python class DataConcentrator(models.Model): #... class ConcentratorHeartbeat(models.Model): #... class Meta: indexes = [ models.Index(fields=["source_id", "-collected_at"]), ] #... source = models.ForeignKey(DataConcentrator, null=True, related_name="heartbeats", on_delete=models.CASCADE) }}} Expected behaviour: No errors raised Encountered behaviour: Error raised on system check: {{{ Performing system checks... Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x00000298392F3D08> Traceback (most recent call last): File "C:\Workspace\sensor-analytics-tool\.pyenv\lib\site- packages\django\utils\autoreload.py", line 225, in wrapper fn(*args, **kwargs) File "C:\Workspace\sensor-analytics-tool\.pyenv\lib\site- packages\django\core\management\commands\runserver.py", line 117, in inner_run self.check(display_num_errors=True) File "C:\Workspace\sensor-analytics-tool\.pyenv\lib\site- packages\django\core\management\base.py", line 425, in check raise SystemCheckError(msg) django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues: ERRORS: sensor_receiver.ConcentratorHeartbeat: (models.E012) 'indexes' refers to the nonexistent field 'source_id'. System check identified 2 issues (0 silenced). }}} Current workaround is to just silence E012. Gets things running, but obviously not ideal. -- Ticket URL: <https://code.djangoproject.com/ticket/30409> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To post to this group, send email to django-updates@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/049.e102e2c4148828d3d0d3d5ea3cb6c54f%40djangoproject.com. For more options, visit https://groups.google.com/d/optout.