[GeoNode-users] How to establish a relation between a layer and a document in the GeoNode database

Paolo Corti pcorti at gmail.com
Wed Mar 8 14:13:13 PST 2017


Sorry I didn't remember the implementation and I got confused!
For some reasons I remembered that the resource field (the
GenericForeignKey) is in ResourceBase and not in Document (that way it
would be possible to link a Document to a layer without any
customization)
And by the way, it would not be necessary a GenericForeignKey in such
a case, as it would be a self-join
p


On Wed, Mar 8, 2017 at 3:11 PM, Simone Dalmasso
<simone.dalmasso at gmail.com> wrote:
> What bug?
>
> Il giorno mer 8 mar 2017 alle 20:46 Paolo Corti <pcorti at gmail.com> ha
> scritto:
>>
>> Hi
>> Shouldn't we file a bug here and fix it in the code base?
>> p
>>
>> On Wed, Mar 8, 2017 at 8:09 AM, Eloi <eloi at openmailbox.org> wrote:
>> > Thanks for your quick reply Simone.
>> >
>> > It was very helpful. Now I can see in a SQL query how Documents and
>> > Layers
>> > relate:
>> >
>> > SELECT d.resourcebase_ptr_id AS doc_id,
>> >        l.resourcebase_ptr_id AS lay_id,
>> >        d.title_en AS doc_title,
>> >        l.title_en AS lay_title
>> > FROM documents_document AS d
>> > LEFT JOIN layers_layer  AS l ON l.resourcebase_ptr_id = d.object_id
>> > ORDER BY l.title_en;
>> >
>> > And I was wrong when I said "every time I run the command "python
>> > manage.py
>> > updatelayers" all established relations (between a layers and a
>> > documents)
>> > disappear". That is not true, they did disappear because I have delete
>> > the
>> > layers in order to restore them again in the update. So my fault. Still
>> > learning.
>> >
>> > Thank you very much for the help.
>> >
>> > Cheers,
>> >
>> > Eloi
>> >
>> >
>> > On 2017-03-08 11:50, Simone Dalmasso wrote:
>> >
>> >> Hi,
>> >>
>> >> The layers are actually saved in the layer_layer table but the relation
>> >> is
>> >> in document_document and points to the ContentType model. It is a
>> >> generic
>> >> relation since it can point to any other geonode resource. The two
>> >> fields
>> >> that you have to compile in the document table are the contenty_type
>> >> (the id
>> >> if the layer content type in your case) and object_id(the id of the
>> >> target
>> >> layer.)
>> >>
>> >> Hope this helps
>> >>
>> >> 2017-03-08 10:05 GMT+01:00 Eloi <eloi at openmailbox.org>:
>> >>
>> >>> Good morning,
>> >>>
>> >>> I would like to establish the relation between a layer and a document
>> >>> using the GeoNode database and not using the web interface.
>> >>> I saw that the layers are listed in table 'base_resourcebase' and
>> >>> documents in 'documents_document'. So I wonder in which table the
>> >>> relation
>> >>> between the previous two is recorded. Then I would just run my SQL
>> >>> code to
>> >>> define does relations.
>> >>>
>> >>> Why I want to do this? Because every time I run the command "python
>> >>> manage.py updatelayers" all established relations (between a layers
>> >>> and a
>> >>> documents) disappear.
>> >>>
>> >>> Thank you in advance!
>> >>>
>> >>> Cheers,
>> >>>
>> >>> Eloi
>> >
>> >
>> > _______________________________________________
>> > geonode-users mailing list
>> > geonode-users at lists.osgeo.org
>> > https://lists.osgeo.org/mailman/listinfo/geonode-users
>>
>>
>>
>> --
>> Paolo Corti
>> Geospatial software developer
>> web: http://www.paolocorti.net
>> twitter: @capooti
>> skype: capooti
>> _______________________________________________
>> geonode-users mailing list
>> geonode-users at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/geonode-users
>
> --
> Simone



-- 
Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti
skype: capooti


More information about the geonode-users mailing list