Andrew: Thanks, that looks awesome.

The whole BitMaskField(choices=LIST) idea scares me.  You must then force
extra knowledge on the user that ordering is important.  If programmer Y
decides the list of choices looks better in alphabetical order (or decides
to add a choice in the middle of the list), any data that is already in the
table becomes incorrect.

I guess you have the same problem with people deciding to re-number the
choices, and you can just as easily leave a comment above it that ordering
is important and all new choices should be added to the end.  Another option
is to store the choices in something like the django_content_type field and
verify on syncdb (or some other place, not sure where it would go) that any
old field types were not assigned to a new mask.

Craig

On Sat, Dec 6, 2008 at 1:12 PM, David Cramer <[EMAIL PROTECTED]> wrote:

>
> Awesome to see some people working on this. I had tried pre-queryset
> refactor and It was just not doable witht he fields API. Can't wait to
> see the final result of this :)
>
> I'm also agreeing with the API of field = BitMaskField(choices=LIST)
>
> On Dec 6, 10:37 am, Carl Meyer <[EMAIL PROTECTED]> wrote:
> > @Andrew: Thanks!  That's precisely the missing piece from my code; if
> > I get some time to put it all together, I think it'll be a full
> > solution.  My approach uses sets of arbitrary flag values rather than
> > creating constants for flags, and it's implemented as a normal model
> > field, which seems a little cleaner than introducing a new syntax.
> >
> > @Craig: I never thought of just monkeypatching the necessary
> > dictionaries to add new lookup types.  You'd need to do it for all the
> > DB backends, of course.  And as with monkeypatching in general, it's
> > not a real sustainable practice to go messing with global reference
> > dicts; if it became common practice to do that for new field types
> > you'd start getting name collisions pretty quickly.  I think I'll
> > probably continue to prefer the custom Q object.
> >
> > Carl
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to