agateblue / django-dynamic-preferences

Dynamic global and instance settings for your django project
https://django-dynamic-preferences.readthedocs.org/
BSD 3-Clause "New" or "Revised" License
346 stars 86 forks source link

Is it possible to access the preferences in annotations? #308

Open mowidatim opened 3 months ago

mowidatim commented 3 months ago

I have a model called Company and have added in various preferences. I am updating and setting these, everything works a treat. A sotred model prefence is in a section called late_fees and field name late_fees. I would like to access the value whilst annotating a queryset and wrote this:

'reminder': Case(When(Q(companypreferenceslate_fees__late_fee=False), then=Value(False, output_field=BooleanField())), default=Value(True, output_field=BooleanField()))

This is just an example - the error I get is:

Unsupported lookup 'preferences' for ForeignKey or join on the field not permitted. Should this be supported?

agateblue commented 3 months ago

Hi @mowidatim, I'm not actively working on new features for this project anymore. What you describe would be convenient, but I'm afraid it would require overriding django's lookup logic. I may be wrong of course and I'm open to reading/reviewing a contribution regarding this, as long as it's not too complex.