Polymorphic class and geomodels?

2015-10-26 Thread Luca Moiana


Hi, working on my first django app, and run into a problem.

I tend to create geodjango objects, and add all data from external tables 
with pk.

Then I want to have different geometries 8points, lines, polygons) into a 
unique polymorphic class, can I do that?

I have an error that I'll document later, and I'm trying to figure out what 
to do.

Here is the model:
import datetime

from django.db import models
from django.contrib.gis.db import models as geomodels
from django.utils import timezone
from django.forms import ModelForm
from polymorphic import PolymorphicModel

# Geometria linea da monitorare
class geolinea(geomodels.Model):
progetto = models.CharField(max_length=14, primary_key=True)
geom = geomodels.MultiLineStringField()
objects = geomodels.GeoManager()
def __str__(self):
return '%s' % (self.progetto)
# Oggetto Progetto soggetto a PMA
class linea(models.Model):
progetto = models.ForeignKey(geolinea)
nome = models.CharField(max_length=200)
TENSIONE = (
('132', '132kV'),
('150', '150kV'),
('220', '220kV'),
('380', '380kV'),
)
tensione = models.CharField(max_length=5,
choices=TENSIONE)
def __str__(self):
return '%s' % (self.nome)

# Geometria dei pdm
class pdmpunto(geomodels.Model):
linea = models.ForeignKey(linea)
numero = models.CharField(max_length=3)
geom = geomodels.PointField()
objects = geomodels.GeoManager()

class pdmtransetto(geomodels.Model):
linea = models.ForeignKey(linea)
numero = models.CharField(max_length=3)
geom = geomodels.LineStringField()
objects = geomodels.GeoManager()

class pdmarea(geomodels.Model):
linea = models.ForeignKey(linea)
numero = models.CharField(max_length=3)
geom = geomodels.PolygonField()
objects = geomodels.GeoManager()

class pdm(PolymorphicModel):
numero = models.CharField(max_length=14, primary_key=True)
class punto(pdm):
rifpunto = models.ForeignKey(pdmpunto)
class transetto(pdm):
riftransetto = models.ForeignKey(pdmtransetto)
class area(pdm):
rifarea = models.ForeignKey(pdmarea)



-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/3f016213-a4a4-4ae4-9145-46ca19bace1b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Polymorphic class and geomodels?

2015-10-28 Thread Collin Anderson
Hello,

Are you trying to combine multiple models into one, like this?

class PolyModel(pdmpunto, pdmtransetto, pdmarea):
pass

You could also try asking on the geodjango list: 
http://groups.google.com/group/geodjango

Collin

On Monday, October 26, 2015 at 7:18:24 AM UTC-4, Luca Moiana wrote:
>
> Hi, working on my first django app, and run into a problem.
>
> I tend to create geodjango objects, and add all data from external tables 
> with pk.
>
> Then I want to have different geometries 8points, lines, polygons) into a 
> unique polymorphic class, can I do that?
>
> I have an error that I'll document later, and I'm trying to figure out 
> what to do.
>
> Here is the model:
> import datetime
>
> from django.db import models
> from django.contrib.gis.db import models as geomodels
> from django.utils import timezone
> from django.forms import ModelForm
> from polymorphic import PolymorphicModel
>
> # Geometria linea da monitorare
> class geolinea(geomodels.Model):
> progetto = models.CharField(max_length=14, primary_key=True)
> geom = geomodels.MultiLineStringField()
> objects = geomodels.GeoManager()
> def __str__(self):
> return '%s' % (self.progetto)
> # Oggetto Progetto soggetto a PMA
> class linea(models.Model):
> progetto = models.ForeignKey(geolinea)
> nome = models.CharField(max_length=200)
> TENSIONE = (
> ('132', '132kV'),
> ('150', '150kV'),
> ('220', '220kV'),
> ('380', '380kV'),
> )
> tensione = models.CharField(max_length=5,
> choices=TENSIONE)
> def __str__(self):
> return '%s' % (self.nome)
>
> # Geometria dei pdm
> class pdmpunto(geomodels.Model):
> linea = models.ForeignKey(linea)
> numero = models.CharField(max_length=3)
> geom = geomodels.PointField()
> objects = geomodels.GeoManager()
>
> class pdmtransetto(geomodels.Model):
> linea = models.ForeignKey(linea)
> numero = models.CharField(max_length=3)
> geom = geomodels.LineStringField()
> objects = geomodels.GeoManager()
>
> class pdmarea(geomodels.Model):
> linea = models.ForeignKey(linea)
> numero = models.CharField(max_length=3)
> geom = geomodels.PolygonField()
> objects = geomodels.GeoManager()
>
> class pdm(PolymorphicModel):
> numero = models.CharField(max_length=14, primary_key=True)
> class punto(pdm):
> rifpunto = models.ForeignKey(pdmpunto)
> class transetto(pdm):
> riftransetto = models.ForeignKey(pdmtransetto)
> class area(pdm):
> rifarea = models.ForeignKey(pdmarea)
>
>
>
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/45f813d4-c476-4cc5-a299-03fb10edd6b7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Polymorphic class and geomodels?

2016-02-05 Thread Luca Moiana
Hi Collin,

Sorry for the late reply, but I still don't get the google groups;

Yes, I am tryng to crete a models where you can choose between the three 
geometry types.

I'll go back to my app and test the code you suggested and post again the 
error.

thanks

On Wednesday, October 28, 2015 at 7:00:26 PM UTC+1, Collin Anderson wrote:
>
> Hello,
>
> Are you trying to combine multiple models into one, like this?
>
> class PolyModel(pdmpunto, pdmtransetto, pdmarea):
> pass
>
> You could also try asking on the geodjango list: 
> http://groups.google.com/group/geodjango
>
> Collin
>
> On Monday, October 26, 2015 at 7:18:24 AM UTC-4, Luca Moiana wrote:
>>
>> Hi, working on my first django app, and run into a problem.
>>
>> I tend to create geodjango objects, and add all data from external tables 
>> with pk.
>>
>> Then I want to have different geometries 8points, lines, polygons) into a 
>> unique polymorphic class, can I do that?
>>
>> I have an error that I'll document later, and I'm trying to figure out 
>> what to do.
>>
>> Here is the model:
>> import datetime
>>
>> from django.db import models
>> from django.contrib.gis.db import models as geomodels
>> from django.utils import timezone
>> from django.forms import ModelForm
>> from polymorphic import PolymorphicModel
>>
>> # Geometria linea da monitorare
>> class geolinea(geomodels.Model):
>> progetto = models.CharField(max_length=14, primary_key=True)
>> geom = geomodels.MultiLineStringField()
>> objects = geomodels.GeoManager()
>> def __str__(self):
>> return '%s' % (self.progetto)
>> # Oggetto Progetto soggetto a PMA
>> class linea(models.Model):
>> progetto = models.ForeignKey(geolinea)
>> nome = models.CharField(max_length=200)
>> TENSIONE = (
>> ('132', '132kV'),
>> ('150', '150kV'),
>> ('220', '220kV'),
>> ('380', '380kV'),
>> )
>> tensione = models.CharField(max_length=5,
>> choices=TENSIONE)
>> def __str__(self):
>> return '%s' % (self.nome)
>>
>> # Geometria dei pdm
>> class pdmpunto(geomodels.Model):
>> linea = models.ForeignKey(linea)
>> numero = models.CharField(max_length=3)
>> geom = geomodels.PointField()
>> objects = geomodels.GeoManager()
>>
>> class pdmtransetto(geomodels.Model):
>> linea = models.ForeignKey(linea)
>> numero = models.CharField(max_length=3)
>> geom = geomodels.LineStringField()
>> objects = geomodels.GeoManager()
>>
>> class pdmarea(geomodels.Model):
>> linea = models.ForeignKey(linea)
>> numero = models.CharField(max_length=3)
>> geom = geomodels.PolygonField()
>> objects = geomodels.GeoManager()
>>
>> class pdm(PolymorphicModel):
>> numero = models.CharField(max_length=14, primary_key=True)
>> class punto(pdm):
>> rifpunto = models.ForeignKey(pdmpunto)
>> class transetto(pdm):
>> riftransetto = models.ForeignKey(pdmtransetto)
>> class area(pdm):
>> rifarea = models.ForeignKey(pdmarea)
>>
>>
>>
>>

-- 
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 https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/cd243d25-0aff-446d-b9c9-cb5682d9bdf3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Polymorphic class and geomodels?

2016-02-05 Thread Sergiy Khohlov
 I would like as simple question :  Are you planning  to have some
advantages using this abstract class ?
 I’m working on  similar product  (look like you are making energy pipeline
system based on postgis and gjango). My product is GTS system which
includes POINTS (datas are received via GTS devices mounted on vehicles).
Polylines (car route for selected time range),  etc.  Producing abstract
class can decrease DB productivity. Which one functional do you need in
case of abstract class for different types usage ?

Many thanks,

Serge


+380 636150445
skype: skhohlov

On Fri, Feb 5, 2016 at 11:07 AM, Luca Moiana  wrote:

> Hi Collin,
>
> Sorry for the late reply, but I still don't get the google groups;
>
> Yes, I am tryng to crete a models where you can choose between the three
> geometry types.
>
> I'll go back to my app and test the code you suggested and post again the
> error.
>
> thanks
>
>
> On Wednesday, October 28, 2015 at 7:00:26 PM UTC+1, Collin Anderson wrote:
>>
>> Hello,
>>
>> Are you trying to combine multiple models into one, like this?
>>
>> class PolyModel(pdmpunto, pdmtransetto, pdmarea):
>> pass
>>
>> You could also try asking on the geodjango list:
>> http://groups.google.com/group/geodjango
>>
>> Collin
>>
>> On Monday, October 26, 2015 at 7:18:24 AM UTC-4, Luca Moiana wrote:
>>>
>>> Hi, working on my first django app, and run into a problem.
>>>
>>> I tend to create geodjango objects, and add all data from external
>>> tables with pk.
>>>
>>> Then I want to have different geometries 8points, lines, polygons) into
>>> a unique polymorphic class, can I do that?
>>>
>>> I have an error that I'll document later, and I'm trying to figure out
>>> what to do.
>>>
>>> Here is the model:
>>> import datetime
>>>
>>> from django.db import models
>>> from django.contrib.gis.db import models as geomodels
>>> from django.utils import timezone
>>> from django.forms import ModelForm
>>> from polymorphic import PolymorphicModel
>>>
>>> # Geometria linea da monitorare
>>> class geolinea(geomodels.Model):
>>> progetto = models.CharField(max_length=14, primary_key=True)
>>> geom = geomodels.MultiLineStringField()
>>> objects = geomodels.GeoManager()
>>> def __str__(self):
>>> return '%s' % (self.progetto)
>>> # Oggetto Progetto soggetto a PMA
>>> class linea(models.Model):
>>> progetto = models.ForeignKey(geolinea)
>>> nome = models.CharField(max_length=200)
>>> TENSIONE = (
>>> ('132', '132kV'),
>>> ('150', '150kV'),
>>> ('220', '220kV'),
>>> ('380', '380kV'),
>>> )
>>> tensione = models.CharField(max_length=5,
>>> choices=TENSIONE)
>>> def __str__(self):
>>> return '%s' % (self.nome)
>>>
>>> # Geometria dei pdm
>>> class pdmpunto(geomodels.Model):
>>> linea = models.ForeignKey(linea)
>>> numero = models.CharField(max_length=3)
>>> geom = geomodels.PointField()
>>> objects = geomodels.GeoManager()
>>>
>>> class pdmtransetto(geomodels.Model):
>>> linea = models.ForeignKey(linea)
>>> numero = models.CharField(max_length=3)
>>> geom = geomodels.LineStringField()
>>> objects = geomodels.GeoManager()
>>>
>>> class pdmarea(geomodels.Model):
>>> linea = models.ForeignKey(linea)
>>> numero = models.CharField(max_length=3)
>>> geom = geomodels.PolygonField()
>>> objects = geomodels.GeoManager()
>>>
>>> class pdm(PolymorphicModel):
>>> numero = models.CharField(max_length=14, primary_key=True)
>>> class punto(pdm):
>>> rifpunto = models.ForeignKey(pdmpunto)
>>> class transetto(pdm):
>>> riftransetto = models.ForeignKey(pdmtransetto)
>>> class area(pdm):
>>> rifarea = models.ForeignKey(pdmarea)
>>>
>>>
>>>
>>> --
> 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 https://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/cd243d25-0aff-446d-b9c9-cb5682d9bdf3%40googlegroups.com
> 
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CADTRxJNEAoP1Vn4tq2%3DpkZ_TDpt%2Bg_9xAjmQXQHQmYLjOk0GWA

Re: Polymorphic class and geomodels?

2016-02-05 Thread Luca Moiana
Hi Serge,

thank you for your reply.

I'm working on an environmental monitoring app, where I want to store, and 
serve, monitoring value on different geometries, points, tracks or polygon.
That's why I'm trying to use a polymorphic model in order to have one 
entity and multiple geometries.

Cheers

L


On Friday, February 5, 2016 at 10:51:31 AM UTC+1, Sergiy Khohlov wrote:
>
>  I would like as simple question :  Are you planning  to have some 
> advantages using this abstract class ? 
>  I’m working on  similar product  (look like you are making energy 
> pipeline system based on postgis and gjango). My product is GTS system 
> which includes POINTS (datas are received via GTS devices mounted on 
> vehicles). Polylines (car route for selected time range),  etc.  Producing 
> abstract class can decrease DB productivity. Which one functional do you 
> need in case of abstract class for different types usage ? 
>
> Many thanks,
>
> Serge
>
>
> +380 636150445
> skype: skhohlov
>
> On Fri, Feb 5, 2016 at 11:07 AM, Luca Moiana  > wrote:
>
>> Hi Collin,
>>
>> Sorry for the late reply, but I still don't get the google groups;
>>
>> Yes, I am tryng to crete a models where you can choose between the three 
>> geometry types.
>>
>> I'll go back to my app and test the code you suggested and post again the 
>> error.
>>
>> thanks
>>
>>
>> On Wednesday, October 28, 2015 at 7:00:26 PM UTC+1, Collin Anderson wrote:
>>>
>>> Hello,
>>>
>>> Are you trying to combine multiple models into one, like this?
>>>
>>> class PolyModel(pdmpunto, pdmtransetto, pdmarea):
>>> pass
>>>
>>> You could also try asking on the geodjango list: 
>>> http://groups.google.com/group/geodjango
>>>
>>> Collin
>>>
>>> On Monday, October 26, 2015 at 7:18:24 AM UTC-4, Luca Moiana wrote:

 Hi, working on my first django app, and run into a problem.

 I tend to create geodjango objects, and add all data from external 
 tables with pk.

 Then I want to have different geometries 8points, lines, polygons) into 
 a unique polymorphic class, can I do that?

 I have an error that I'll document later, and I'm trying to figure out 
 what to do.

 Here is the model:
 import datetime

 from django.db import models
 from django.contrib.gis.db import models as geomodels
 from django.utils import timezone
 from django.forms import ModelForm
 from polymorphic import PolymorphicModel

 # Geometria linea da monitorare
 class geolinea(geomodels.Model):
 progetto = models.CharField(max_length=14, primary_key=True)
 geom = geomodels.MultiLineStringField()
 objects = geomodels.GeoManager()
 def __str__(self):
 return '%s' % (self.progetto)
 # Oggetto Progetto soggetto a PMA
 class linea(models.Model):
 progetto = models.ForeignKey(geolinea)
 nome = models.CharField(max_length=200)
 TENSIONE = (
 ('132', '132kV'),
 ('150', '150kV'),
 ('220', '220kV'),
 ('380', '380kV'),
 )
 tensione = models.CharField(max_length=5,
 choices=TENSIONE)
 def __str__(self):
 return '%s' % (self.nome)

 # Geometria dei pdm
 class pdmpunto(geomodels.Model):
 linea = models.ForeignKey(linea)
 numero = models.CharField(max_length=3)
 geom = geomodels.PointField()
 objects = geomodels.GeoManager()

 class pdmtransetto(geomodels.Model):
 linea = models.ForeignKey(linea)
 numero = models.CharField(max_length=3)
 geom = geomodels.LineStringField()
 objects = geomodels.GeoManager()

 class pdmarea(geomodels.Model):
 linea = models.ForeignKey(linea)
 numero = models.CharField(max_length=3)
 geom = geomodels.PolygonField()
 objects = geomodels.GeoManager()

 class pdm(PolymorphicModel):
 numero = models.CharField(max_length=14, primary_key=True)
 class punto(pdm):
 rifpunto = models.ForeignKey(pdmpunto)
 class transetto(pdm):
 riftransetto = models.ForeignKey(pdmtransetto)
 class area(pdm):
 rifarea = models.ForeignKey(pdmarea)



 -- 
>> 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...@googlegroups.com .
>> To post to this group, send email to django...@googlegroups.com 
>> .
>> Visit this group at https://groups.google.com/group/django-users.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/django-users/cd243d25-0aff-446d-b9c9-cb5682d9bdf3%40googlegroups.com
>>  
>> 
>> .
>>
>> For more options, visit 

Re: Polymorphic class and geomodels?

2016-02-05 Thread Sergiy Khohlov
I’ve decided  to use  connection via key. and using via  key directly or
 via related objects.  Such us Car  -> Point  (multiline). Reason is simple
: django creates not perfect database structure  and I would like think
about performance as soon as possible.  My project contains Car and points
related to the car and of course route (POLYLINE).  I deceided to use
trivial PostGIS model for avoiding  bottleneck that use simple code in
view.  It is really easy to change view and hard to change models in case
of important data present. (Every 100km generates 2000 points which cause
and route length and motor service interval). In case of success Abstract
class (with good performance) let me know please.

Many thanks,

Serge


+380 636150445
skype: skhohlov

On Fri, Feb 5, 2016 at 7:25 PM, Luca Moiana  wrote:

> Hi Serge,
>
> thank you for your reply.
>
> I'm working on an environmental monitoring app, where I want to store, and
> serve, monitoring value on different geometries, points, tracks or polygon.
> That's why I'm trying to use a polymorphic model in order to have one
> entity and multiple geometries.
>
> Cheers
>
> L
>
>
> On Friday, February 5, 2016 at 10:51:31 AM UTC+1, Sergiy Khohlov wrote:
>>
>>  I would like as simple question :  Are you planning  to have some
>> advantages using this abstract class ?
>>  I’m working on  similar product  (look like you are making energy
>> pipeline system based on postgis and gjango). My product is GTS system
>> which includes POINTS (datas are received via GTS devices mounted on
>> vehicles). Polylines (car route for selected time range),  etc.  Producing
>> abstract class can decrease DB productivity. Which one functional do you
>> need in case of abstract class for different types usage ?
>>
>> Many thanks,
>>
>> Serge
>>
>>
>> +380 636150445
>> skype: skhohlov
>>
>> On Fri, Feb 5, 2016 at 11:07 AM, Luca Moiana  wrote:
>>
>>> Hi Collin,
>>>
>>> Sorry for the late reply, but I still don't get the google groups;
>>>
>>> Yes, I am tryng to crete a models where you can choose between the three
>>> geometry types.
>>>
>>> I'll go back to my app and test the code you suggested and post again
>>> the error.
>>>
>>> thanks
>>>
>>>
>>> On Wednesday, October 28, 2015 at 7:00:26 PM UTC+1, Collin Anderson
>>> wrote:

 Hello,

 Are you trying to combine multiple models into one, like this?

 class PolyModel(pdmpunto, pdmtransetto, pdmarea):
 pass

 You could also try asking on the geodjango list:
 http://groups.google.com/group/geodjango

 Collin

 On Monday, October 26, 2015 at 7:18:24 AM UTC-4, Luca Moiana wrote:
>
> Hi, working on my first django app, and run into a problem.
>
> I tend to create geodjango objects, and add all data from external
> tables with pk.
>
> Then I want to have different geometries 8points, lines, polygons)
> into a unique polymorphic class, can I do that?
>
> I have an error that I'll document later, and I'm trying to figure out
> what to do.
>
> Here is the model:
> import datetime
>
> from django.db import models
> from django.contrib.gis.db import models as geomodels
> from django.utils import timezone
> from django.forms import ModelForm
> from polymorphic import PolymorphicModel
>
> # Geometria linea da monitorare
> class geolinea(geomodels.Model):
> progetto = models.CharField(max_length=14, primary_key=True)
> geom = geomodels.MultiLineStringField()
> objects = geomodels.GeoManager()
> def __str__(self):
> return '%s' % (self.progetto)
> # Oggetto Progetto soggetto a PMA
> class linea(models.Model):
> progetto = models.ForeignKey(geolinea)
> nome = models.CharField(max_length=200)
> TENSIONE = (
> ('132', '132kV'),
> ('150', '150kV'),
> ('220', '220kV'),
> ('380', '380kV'),
> )
> tensione = models.CharField(max_length=5,
> choices=TENSIONE)
> def __str__(self):
> return '%s' % (self.nome)
>
> # Geometria dei pdm
> class pdmpunto(geomodels.Model):
> linea = models.ForeignKey(linea)
> numero = models.CharField(max_length=3)
> geom = geomodels.PointField()
> objects = geomodels.GeoManager()
>
> class pdmtransetto(geomodels.Model):
> linea = models.ForeignKey(linea)
> numero = models.CharField(max_length=3)
> geom = geomodels.LineStringField()
> objects = geomodels.GeoManager()
>
> class pdmarea(geomodels.Model):
> linea = models.ForeignKey(linea)
> numero = models.CharField(max_length=3)
> geom = geomodels.PolygonField()
> objects = geomodels.GeoManager()
>
> class pdm(PolymorphicModel):
> numero = models.CharField(max_length=14, primary_key=True)
> class

Re: Polymorphic class and geomodels?

2016-02-05 Thread Luca Moiana
Hi Serge,

sorry for the expert warning you gave me on performance. But I have trouble 
following your really techincal suggestion, my goal is to have one table 
with measures that is related to three models with different geometries, so 
I can't use a foreign key in measure table, I don't understand the use of 
related obj, can you point me to a good source ?

thanks

On Friday, February 5, 2016 at 7:40:53 PM UTC+1, Sergiy Khohlov wrote:
>
> I’ve decided  to use  connection via key. and using via  key directly or 
>  via related objects.  Such us Car  -> Point  (multiline). Reason is simple 
> : django creates not perfect database structure  and I would like think 
> about performance as soon as possible.  My project contains Car and points 
> related to the car and of course route (POLYLINE).  I deceided to use 
> trivial PostGIS model for avoiding  bottleneck that use simple code in 
> view.  It is really easy to change view and hard to change models in case 
> of important data present. (Every 100km generates 2000 points which cause 
> and route length and motor service interval). In case of success Abstract 
> class (with good performance) let me know please.  
>
> Many thanks,
>
> Serge
>
>
> +380 636150445
> skype: skhohlov
>
> On Fri, Feb 5, 2016 at 7:25 PM, Luca Moiana  > wrote:
>
>> Hi Serge,
>>
>> thank you for your reply.
>>
>> I'm working on an environmental monitoring app, where I want to store, 
>> and serve, monitoring value on different geometries, points, tracks or 
>> polygon.
>> That's why I'm trying to use a polymorphic model in order to have one 
>> entity and multiple geometries.
>>
>> Cheers
>>
>> L
>>
>>
>> On Friday, February 5, 2016 at 10:51:31 AM UTC+1, Sergiy Khohlov wrote:
>>>
>>>  I would like as simple question :  Are you planning  to have some 
>>> advantages using this abstract class ? 
>>>  I’m working on  similar product  (look like you are making energy 
>>> pipeline system based on postgis and gjango). My product is GTS system 
>>> which includes POINTS (datas are received via GTS devices mounted on 
>>> vehicles). Polylines (car route for selected time range),  etc.  Producing 
>>> abstract class can decrease DB productivity. Which one functional do you 
>>> need in case of abstract class for different types usage ? 
>>>
>>> Many thanks,
>>>
>>> Serge
>>>
>>>
>>> +380 636150445
>>> skype: skhohlov
>>>
>>> On Fri, Feb 5, 2016 at 11:07 AM, Luca Moiana  wrote:
>>>
 Hi Collin,

 Sorry for the late reply, but I still don't get the google groups;

 Yes, I am tryng to crete a models where you can choose between the 
 three geometry types.

 I'll go back to my app and test the code you suggested and post again 
 the error.

 thanks


 On Wednesday, October 28, 2015 at 7:00:26 PM UTC+1, Collin Anderson 
 wrote:
>
> Hello,
>
> Are you trying to combine multiple models into one, like this?
>
> class PolyModel(pdmpunto, pdmtransetto, pdmarea):
> pass
>
> You could also try asking on the geodjango list: 
> http://groups.google.com/group/geodjango
>
> Collin
>
> On Monday, October 26, 2015 at 7:18:24 AM UTC-4, Luca Moiana wrote:
>>
>> Hi, working on my first django app, and run into a problem.
>>
>> I tend to create geodjango objects, and add all data from external 
>> tables with pk.
>>
>> Then I want to have different geometries 8points, lines, polygons) 
>> into a unique polymorphic class, can I do that?
>>
>> I have an error that I'll document later, and I'm trying to figure 
>> out what to do.
>>
>> Here is the model:
>> import datetime
>>
>> from django.db import models
>> from django.contrib.gis.db import models as geomodels
>> from django.utils import timezone
>> from django.forms import ModelForm
>> from polymorphic import PolymorphicModel
>>
>> # Geometria linea da monitorare
>> class geolinea(geomodels.Model):
>> progetto = models.CharField(max_length=14, primary_key=True)
>> geom = geomodels.MultiLineStringField()
>> objects = geomodels.GeoManager()
>> def __str__(self):
>> return '%s' % (self.progetto)
>> # Oggetto Progetto soggetto a PMA
>> class linea(models.Model):
>> progetto = models.ForeignKey(geolinea)
>> nome = models.CharField(max_length=200)
>> TENSIONE = (
>> ('132', '132kV'),
>> ('150', '150kV'),
>> ('220', '220kV'),
>> ('380', '380kV'),
>> )
>> tensione = models.CharField(max_length=5,
>> choices=TENSIONE)
>> def __str__(self):
>> return '%s' % (self.nome)
>>
>> # Geometria dei pdm
>> class pdmpunto(geomodels.Model):
>> linea = models.ForeignKey(linea)
>> numero = models.CharField(max_length=3)
>> geom = geomodels.Po

Re: Polymorphic class and geomodels?

2016-02-08 Thread Sergiy Khohlov
Class Based Views has ability to include function in view from template.
 Short example:
 I have finished  small  (GTS) project  related  to  GPS system. Each car
has a array of points (car positions) and route (named as LineString in
GeoDjango).

 part of models.py


class Points(models.Model):
""" """
Car  = models.ForeignKey(Car)
Speed= models.IntegerField(default=0)
Time = models.DateTimeField()
Course   = models.IntegerField(default=0)
Altitude = models.IntegerField(default=0)
Sat  = models.IntegerField(default=1)
Point= gismodels.PointField()

 Points has connection to the Car  and has DateTime field used for correct
point sorting.
HTML page (Car) should contains array of related  object based on Car ID
and specific time range.
I add to views.py  (CarDetail class )next function:

def points(self):
""" """
timefmt= "%Y-%m-%d %H:%M:%S"
usertimezone= self.request.user.profile.timezone
try:
StartDateTime  =
usertimezone.localize(datetime.strptime(self.request.GET['StartDateTime'],
timefmt))
EndDateTime   =
usertimezone.localize(datetime.strptime(self.request.GET['EndDateTime'],
timefmt))
except:
StartDateTime  = datetime.combine(date.today(), time.min)
EndDateTime   = datetime.now()

context = super(CarDayReport, self).get_context_data()
return Points.objects.filter(Car_id=context['car'].id,
 Time__gt=StartDateTime,
 Time__lte=EndDateTime).order_by('Time')

  Time range is set via html template. Car ID is  also known.   Not hard
way to do.,



Many thanks,

Serge


+380 636150445
skype: skhohlov

On Sat, Feb 6, 2016 at 9:29 AM, Luca Moiana  wrote:

> Hi Serge,
>
> sorry for the expert warning you gave me on performance. But I have
> trouble following your really techincal suggestion, my goal is to have one
> table with measures that is related to three models with different
> geometries, so I can't use a foreign key in measure table, I don't
> understand the use of related obj, can you point me to a good source ?
>
> thanks
>
> On Friday, February 5, 2016 at 7:40:53 PM UTC+1, Sergiy Khohlov wrote:
>>
>> I’ve decided  to use  connection via key. and using via  key directly or
>>  via related objects.  Such us Car  -> Point  (multiline). Reason is simple
>> : django creates not perfect database structure  and I would like think
>> about performance as soon as possible.  My project contains Car and points
>> related to the car and of course route (POLYLINE).  I deceided to use
>> trivial PostGIS model for avoiding  bottleneck that use simple code in
>> view.  It is really easy to change view and hard to change models in case
>> of important data present. (Every 100km generates 2000 points which cause
>> and route length and motor service interval). In case of success Abstract
>> class (with good performance) let me know please.
>>
>> Many thanks,
>>
>> Serge
>>
>>
>> +380 636150445
>> skype: skhohlov
>>
>> On Fri, Feb 5, 2016 at 7:25 PM, Luca Moiana  wrote:
>>
>>> Hi Serge,
>>>
>>> thank you for your reply.
>>>
>>> I'm working on an environmental monitoring app, where I want to store,
>>> and serve, monitoring value on different geometries, points, tracks or
>>> polygon.
>>> That's why I'm trying to use a polymorphic model in order to have one
>>> entity and multiple geometries.
>>>
>>> Cheers
>>>
>>> L
>>>
>>>
>>> On Friday, February 5, 2016 at 10:51:31 AM UTC+1, Sergiy Khohlov wrote:

  I would like as simple question :  Are you planning  to have some
 advantages using this abstract class ?
  I’m working on  similar product  (look like you are making energy
 pipeline system based on postgis and gjango). My product is GTS system
 which includes POINTS (datas are received via GTS devices mounted on
 vehicles). Polylines (car route for selected time range),  etc.  Producing
 abstract class can decrease DB productivity. Which one functional do you
 need in case of abstract class for different types usage ?

 Many thanks,

 Serge


 +380 636150445
 skype: skhohlov

 On Fri, Feb 5, 2016 at 11:07 AM, Luca Moiana 
 wrote:

> Hi Collin,
>
> Sorry for the late reply, but I still don't get the google groups;
>
> Yes, I am tryng to crete a models where you can choose between the
> three geometry types.
>
> I'll go back to my app and test the code you suggested and post again
> the error.
>
> thanks
>
>
> On Wednesday, October 28, 2015 at 7:00:26 PM UTC+1, Collin Anderson
> wrote:
>>
>> Hello,
>>
>> Are you trying to combine multiple models into one, like this?
>>
>> class PolyModel(pdmpunto, pdmtransetto, pdmarea):
>> pass
>>
>> You could also try asking on the geodjango list:
>> http://groups.google.com/