What I want is a very simple thing .
I want the primary key of Sdr_Layer to be the foreign key of Test table .
How do I manage it ?
And , I am assigning values to Test via Layermapping tool , which as you
said that passes a dict .

I think the problem here is the layermapping tries to map onto the Test
model , but doesn't know what to do about the layer_id  . Thats what I think
. Not sure . What can be the way out ?

On Thu, Jun 16, 2011 at 2:19 PM, Daniel Roseman <dan...@roseman.org.uk>wrote:

> On Wednesday, 15 June 2011 22:25:24 UTC+1, Satyajit Sarangi wrote:
>>
>> his is my models.py
>>
>> from django.db import models
>>
>> class Sdr_Layer(models.Model): layer_name =
>> models.CharField(max_length = 100)
>> layer_attribute_name=models.CharField(max_length=100)
>>
>> # This is an auto-generated Django model module created by ogrinspect.
>> from django.contrib.gis.db import models
>>
>>
>>
>>
>>
>>
>>
>>
>> # This is an auto-generated Django model module created by ogrinspect.
>> from django.contrib.gis.db import models
>>
>> class Test(models.Model):
>>     layer_id= models.ForeignKey(Sdr_Layer)
>>     name = models.CharField(max_length=80)
>>     descriptio = models.CharField(max_length=80)
>>     geom = models.PolygonField(srid=4326)
>>     objects = models.GeoManager()
>>     S = Sdr_Layer(layer_name="Test")
>>
>> # Auto-generated `LayerMapping` dictionary for Test model
>>     test_mapping = {
>>     'name' : 'Name',
>>     'descriptio' : 'Descriptio',
>>     'geom' : 'POLYGON25D',
>>     }
>>     S.layer_attribute_name=test_mapping
>>     S.save();
>>
>> When I am trying to load data to Test model , it throws me a not_null
>> error on layer_id which is the foreign key here . I basically want the
>> primary key of Sdr_Layer to act as a foreign key here . Sdr_Layer
>> table does have values . So , why such an error ?
>
>
>
> On Wednesday, 15 June 2011 22:25:24 UTC+1, Satyajit Sarangi wrote:
>>
>> his is my models.py
>>
>> from django.db import models
>>
>> class Sdr_Layer(models.Model): layer_name =
>> models.CharField(max_length = 100)
>> layer_attribute_name=models.CharField(max_length=100)
>>
>> # This is an auto-generated Django model module created by ogrinspect.
>> from django.contrib.gis.db import models
>>
>> # This is an auto-generated Django model module created by ogrinspect.
>> from django.contrib.gis.db import models
>>
>> class Test(models.Model):
>>     layer_id= models.ForeignKey(Sdr_Layer)
>>     name = models.CharField(max_length=80)
>>     descriptio = models.CharField(max_length=80)
>>     geom = models.PolygonField(srid=4326)
>>     objects = models.GeoManager()
>>     S = Sdr_Layer(layer_name="Test")
>>
>> # Auto-generated `LayerMapping` dictionary for Test model
>>     test_mapping = {
>>     'name' : 'Name',
>>     'descriptio' : 'Descriptio',
>>     'geom' : 'POLYGON25D',
>>     }
>>     S.layer_attribute_name=test_mapping
>>     S.save();
>>
>> When I am trying to load data to Test model , it throws me a not_null
>> error on layer_id which is the foreign key here . I basically want the
>> primary key of Sdr_Layer to act as a foreign key here . Sdr_Layer
>> table does have values . So , why such an error ?
>
>
> You need to think things through a bit more carefully. It seems like you're
> randomly assigning things without really having any idea of what you're
> doing.
>
> This code:
> S = Sdr_Layer(layer_name="Test")
> instantiates a new Sdr_Layer object, with the name "Test".
>
> This line:
> S.layer_attribute_name=test_mapping
> tries to do something very strange, which is to assign a dictionary to your
> CharField. You can do that, but it will be converted to a string on save.
>
> Now, none of this code would throw a "not_null error on layer_id", because
> layer_id is a field on the Test model, which you don't even use in this
> code. So, there must be code you're not showing us. Also, there is a reason
> why Python prints the full traceback on an error: it's useful debugging
> information, not random cruft. Post it too.
>
> FWIW, I suspect you wanted to do this:
>
> t = Test(**layer_mapping)
> t.layer_id = S
> t.save()
> --
> DR.
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/django-users/-/mELn7nUrAOMJ.
> To post to this group, send email to django-users@googlegroups.com.
> To unsubscribe from this group, send email to
> django-users+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>



-- 
*Satyajit Sarangi*

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

Reply via email to