Hi Tobias, Peter, everyone After finding some time to have an initial play around with the Neo and Django integration, I'm pretty excited.
I discussed bits with Tobias on IRC the other day and we thought that a quick 'wish list', communicated via this mailinglist, would be useful to help steer development of the integration. So, I thought I'd start the ball rolling with some notes I made while playing around earlier, in no particular order of priority. If anyone agrees/disagrees, please do join in the discussion. These are all in addition to the forthcoming features already listed in Tobias's blog post ( http://journal.thobe.org/2009/12/seamless-neo4j-integration-in-django.html ). - __unicode__ / Python list representations of NodeQuerySets to make it easier to explore things in the shell. - Full support for the queryset API. Details are all here http://docs.djangoproject.com/en/1.1/ref/models/querysets/#ref-models-querysets, but headline bits incude: - queryset.filter() on attributes/properties - eg MyNodeModel.objects.filter(name="baz"). Plus, SQL-like operators, if possible such as foo__contains="bar", foo__icontains="BAR" and foo__iexact="Bar" (These calls methods will most likely be needed for full Django Admin support anyway, to allow for the in-Admin search facility, and I know Tobias already has Admin support on his list) - queryset.values() method for querysets, to get just certain values back. This is often used for better ORM performance in Django, but will it make much difference in Neo4j? - queryset.order_by('attribute_name') - again, probably essential for Django-admin support - Control over traversals -- this is non-RDBMS-Django ORM functionality, but am really looking forward to it! - Support for Managers for models ( http://docs.djangoproject.com/en/1.1/topics/db/managers/#topics-db-managers), so one can extend a model's standard API methods with custom ones. Indeed, this seems a neat way to acccess Neo traversals via the Django ORM. - Typed fields, rather than just Property(), or perhaps better, simply the facility to specify a custom Django form field for it - eg: class Member(model.NodeModel): ... email_address = model.Property(form_field=django.forms.fields.EmailField) - Support for django.contrib.auth (already on Tobias's list). Indeed, it'll be very interesting to see how much extra neo4j-python work might be required when trying to use common pluggable Django (or Pinax www.pinaxproject.com) apps. Once support for django.contrib.auth is in, then we'll be able to experiment. That's the lot for now. Forgive me if this seems too demanding, or if I'm not appreciating the power of Neo in my request for typed fields, or if I'm asking for stuff that's already there but I've missed :o) Hope it helps keep things moving. I'll play with it all more in the coming week, I hope, and can chip in more as and when required, and would be v interested to hear opinions from other Djangonauts on this list. Cheers Steve _______________________________________________ Neo mailing list [email protected] https://lists.neo4j.org/mailman/listinfo/user

