Django-rest-framework: limit_choices_to and Q objects

Created on 24 Feb 2019  路  1Comment  路  Source: encode/django-rest-framework

After upgrading from 3.8 -> 3.9 I've encountered an issue with the new limit_choices_to foreign key changes.

filter() argument after ** must be a mapping, not Q

It seems the issue was documented in the original merge and a fix was proposed but I can't find an existing PR that has addressed it - nor does the proposed fix exist in master

https://github.com/encode/django-rest-framework/pull/6371#issuecomment-455626461

Checklist

  • [ ] I have verified that that issue exists against the master branch of Django REST framework.
  • [X] I have searched for similar issues in both open and closed tickets and cannot find a duplicate.
  • [X] This is not a usage question. (Those should be directed to the discussion group instead.)
  • [X] This cannot be dealt with as a third party library. (We prefer new functionality to be in the form of third party libraries where possible.)
  • [X] I have reduced the issue to the simplest possible case.
  • [ ] I have included a failing test as a pull request. (If you are unable to do so we can still accept the issue.)

Steps to reproduce

model with FK that contains a limit_choices_to with Q object reference ( instead of Dictionary)

Expected behavior

no errors, code works as expected if a dictionary is passed instead

Actual behavior

error thrown,

filter() argument after ** must be a mapping, not Q

Most helpful comment

>All comments

Was this page helpful?
0 / 5 - 0 ratings