#22064: Invalid related_name passes silently
-------------------------------------+-------------------------------------
     Reporter:  mondone              |                    Owner:  elhippie
         Type:                       |                   Status:  assigned
  Cleanup/optimization               |                  Version:  master
    Component:  Database layer       |               Resolution:
  (models, ORM)                      |             Triage Stage:  Accepted
     Severity:  Normal               |      Needs documentation:  0
     Keywords:                       |  Patch needs improvement:  1
    Has patch:  1                    |                    UI/UX:  0
  Needs tests:  0                    |
Easy pickings:  1                    |
-------------------------------------+-------------------------------------

Comment (by carljm):

 The checks framework is not a runtime code path or a fast path at all, so
 readability definitely trumps performance here. Barring catastrophic
 performance issues, which a complex regex can be susceptible to.

 Looking at the draft patch commit, a few comments:

 1. I don't see why the "ends with +" case needs any regex at all. Any
 related-name ending with "+" is valid, since it won't be used as a Python
 identifier anyway. (I'm not sure why we even support "ends with +" rather
 than just "+" -- what's the purpose of including anything before the
 "+"?). So a simple `.endswith('+')` check should be sufficient there.

 2. I'd suggest that we also check the `related_name` against
 `keyword.iskeyword()`, since using a Python keyword as a related name
 could also cause trouble.

--
Ticket URL: <https://code.djangoproject.com/ticket/22064#comment:8>
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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/065.6131331782755da39ef2fdf95b7dae6e%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to