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

Reply via email to