I am having Neo4Django in my django based application and trying to use two 
databases at the sametime : Neo4j and PostGIS. So i configured settings.py 
as suggested in the docs (http://neo4django.readthedocs.org) and models.py 
as well.

When i try to run syncdb , i am getting this message 

    You just installed Django's auth system, which means you don't have any 
superusers defined.
        Would you like to create one now? (yes/no): yes
        Username (leave blank to use 'postgres'): 
        E-mail address: postg...@gmail.com
        Password: 
        Password (again): 
        Superuser created successfully.
        Installing custom SQL ...
        Installing indexes ...
        Installed 0 object(s) from 0 fixture(s)

but when i check if the table and the graph were created, i find nothing ! 

i am using django 1.4 and neo4j 1.9.M05 


here is how i declared my databases in settings.py: 

    DATABASES = {
    'default': {
         'ENGINE': 'django.contrib.gis.db.backends.postgis',
         'NAME': 'geodjango',
         'USER': 'postgres',


         }
    }
    NEO4J_DATABASES = {
        'default' : {
            'HOST':'127.0.0.1',
            'PORT':7474,
            'ENDPOINT':'/db/data/'
        }
    }
    
    DATABASE_ROUTERS = ['neo4django.utils.Neo4djangoIntegrationRouter']


and i declared my models.py like this : 

    from neo4django.db import models
    from django.contrib.gis.db import models as gis                         
    
       
    class Airport(models.NodeModel):
        name = models.StringProperty()
        iata = models.StringProperty()
        icao= models.StringProperty()
    
        city = models.Relationship('self',rel_type='isAT')

    #geographical database for storing entities coordinates
    class pointsOfInterest(gis.Model):
        nodeid = gis.IntegerField()
        longitude = gis.FloatField()
        latitude = gis.FloatField()
    
        # GeoDjango-specific: a geometry field (MultiPolygonField), and
        # overriding the default manager with a GeoManager instance.
        objects = gis.GeoManager()
    

when i run `python manage.py sqlall testapp` (where testapp is my app and 
after deleting the neo4j models , otherwise it won't work ), i am getting 
that sql that permit to create the table : 

    BEGIN;
    CREATE TABLE "testapp_pointsofinterest" (
        "id" serial NOT NULL PRIMARY KEY,
        "nodeid" integer NOT NULL,
        "longitude" double precision NOT NULL,
        "latitude" double precision NOT NULL
    )
    ;
    COMMIT;

Then i try to create an instance of this table in the `python manage.py 
shell` i am getting this : 


    postgres@anas-desktop:/home/anas/Desktop/testNeo4Django$ ./manage.py 
shell
    Python 2.6.5 (r265:79063, Oct  1 2012, 22:07:21) 
    [GCC 4.4.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    (InteractiveConsole)
    >>> from testNeo4Django.testapp.models import pointsOfInterest
    >>> 
    >>> poi= pointsOfInterest.objects.create()
    Traceback (most recent call last):
      File "<console>", line 1, in <module>
      File 
"/usr/local/lib/python2.6/dist-packages/django/db/models/manager.py", line 
137, in create
        return self.get_query_set().create(**kwargs)
      File 
"/usr/local/lib/python2.6/dist-packages/django/db/models/query.py", line 
377, in create
        obj.save(force_insert=True, using=self.db)
      File 
"/usr/local/lib/python2.6/dist-packages/django/db/models/base.py", line 
463, in save
        self.save_base(using=using, force_insert=force_insert, 
force_update=force_update)
      File 
"/usr/local/lib/python2.6/dist-packages/django/db/models/base.py", line 
551, in save_base
        result = manager._insert([self], fields=fields, 
return_id=update_pk, using=using, raw=raw)
      File 
"/usr/local/lib/python2.6/dist-packages/django/db/models/manager.py", line 
203, in _insert
        return insert_query(self.model, objs, fields, **kwargs)
      File 
"/usr/local/lib/python2.6/dist-packages/django/db/models/query.py", line 
1593, in insert_query
        return query.get_compiler(using=using).execute_sql(return_id)
      File 
"/usr/local/lib/python2.6/dist-packages/django/db/models/sql/compiler.py", 
line 912, in execute_sql
        cursor.execute(sql, params)
      File 
"/usr/local/lib/python2.6/dist-packages/django/db/backends/util.py", line 
40, in execute
        return self.cursor.execute(sql, params)
      File 
"/usr/local/lib/python2.6/dist-packages/django/db/backends/postgresql_psycopg2/base.py",
 
line 52, in execute
        return self.cursor.execute(query, args)
    IntegrityError: null value in column "nodeid" violates not-null 
constraint

 Any ideas about this ?

thanks for your help 

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to