Hi, Malcolm Tredinnick wrote: > In passing, moving the query construction out of QuerySet, particularly > if we move the database access portions out as well, will make > integrating with SQLAlchemy easier -- since it's "just another data > storage backend".
If you make it a design goal, yes. But I'd think that a generic pluggable "data storage backend" together with your own backend is much harder to get right than directly plugging in SQLAlchemy. > I'm really not against SQLAlchemy in any way -- quite > a happy user of it, in fact -- I'm just not convinced it's needed by > default in Django, but I'd be happy to see it as an option. QuerySet does currently not really have a concept of joins. I mean, it can handle joins to some extent, but it does not have an understanding that goes above knowing the SQL syntax. It does not understand table aliases, multiple joins to the same table, different join types, join conditions. I fear that the problems in some of the tickets I mentioned are not really solvable without such a concept. But this would need a lot of efforts and be more or less a rewrite of QuerySet. I'm usually quite capable of fixing the bugs in Django that itch me, but I haven't found a solution for these. Another point is that you'll get more and more change requests, for things like aggregates, sorting by functions, outer joins, composite primary keys. At some time you'll need to define how far Django will go and put a stop to this. But how can you justify it within the python community when there's something like SQLAlchemy around? Batteries included is nice, but, hey, Django does not implement the database backend, either. It does not implement the fast-cgi interface. In my opinion, the strength of Django vs. TurboGears/Pylons is that it has documented everything in one place, plus the coherent API. The dependencies are a minor point. You don't need to give this up when you integrate SQLAlchemy just for SQL construction. This is similar to the SQL backend and flup: They usually don't turn up in your code, only when you actually need them. Michael --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to [email protected] 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 -~----------~----~----~----~------~----~------~--~---
