from django.db import models
class NICSGroupType(models.Model):
n_group_number = models.IntegerField(primary_key = True)
n_group_name = models.CharField(max_length = 512)
def __str__(self):
return self.n_group_name
class Meta:
db_table = "n_nics_groups"
class StaffpageAdmin(models.Model):
n_id = models.IntegerField(primary_key =
True)
n_username = models.CharField(max_length = 50)
class Meta:
db_table = 'n_staffpage_admin'
class Staff(models.Model):
username = models.CharField(primary_key = True,
max_length = 50)
home_phone = models.CharField(max_length = 12,
null=True)
cell_phone = models.CharField(max_length = 12,
null = True)
home_address = models.CharField(max_length = 1024,
null = True)
home_city = models.CharField(max_length = 64,
null = True)
home_state = models.CharField(max_length = 32,
null = True)
home_zip = models.CharField(max_length = 10,
null = True)
emergency_name = models.CharField(max_length =64,
null = True)
emergency_phone = models.CharField(max_length = 12,
null = True)
nics_group = models.ForeignKey(NICSGroupType,
to_field="n_group_number",db_column="nics_group",
null=True,blank=True)
room_number = models.CharField(max_length = 32,
null = True)
title = models.CharField(max_length = 64)
supervisor = models.CharField(max_length = 25,
null = True, blank = True)
url = models.CharField(max_length =
256,null = True, blank = True)
im = models.CharField(max_length = 32,
null = True, blank=True)
last_modification_time = models.IntegerField()
start_date = models.IntegerField()
creation_time = models.IntegerField()
termination_date = models.IntegerField(null = True,
blank = True)
bio = models.TextField()
photopath = models.CharField(max_length = 5048)
office_phone = models.CharField(max_length=12)
email = models.CharField(max_length = 256)
preferred_name = models.CharField(max_length = 50,
null = True, blank = True)
deleted = models.BooleanField(default = False)
viewable = models.BooleanField(default = True)
class Meta:
db_table = "n_test_staff"
class TG_Staff(models.Model):
g_name = models.CharField(primary_key = True,
max_length = 1024)
g_modification_time = models.IntegerField()
g_active = models.CharField(max_length = 5)
g_common_name = models.CharField(max_length = 1024)
g_phone_number = models.CharField(max_length = 1024)
g_default_project = models.CharField(max_length = 1024)
g_office_address = models.CharField(max_length = 1024)
g_bz_phone = models.CharField(max_length = 1024)
g_bz_phone_ext = models.CharField(max_length = 1024)
g_citizenship = models.CharField(max_length = 1024)
g_street_address = models.CharField(max_length = 1024)
g_street_address2 = models.CharField(max_length = 1024)
g_city = models.CharField(max_length = 1024)
g_state = models.CharField(max_length = 1024)
g_zip = models.CharField(max_length = 1024)
g_country = models.CharField(max_length = 1024)
g_dept = models.CharField(max_length = 1024)
g_tg_person_id = models.CharField(max_length = 1024)
g_org = models.CharField(max_length = 1024)
g_position = models.CharField(max_length = 1024)
g_home_phone = models.CharField(max_length = 1024)
g_fax = models.CharField(max_length = 1024)
g_ldap_id = models.IntegerField()
g_email_address = models.CharField(max_length = 1024)
class Meta:
db_table = "g_user"
Is this what you needed?
Tabitha
On Nov 4, 2:00 am, Furbee <Furbeena...@gmail.com> wrote:
> Hi Tabitha,
>
> I wish I could supply a quick and simple answer to fix what's going on in
> your database, but nothing obvious is standing out. Can you supply your
> model for StaffForm? That seems to be where the problem lies, since we can
> get details from the model and view elsewhere.
>
> Thanks,
>
> Furbee
>
> On Thu, Nov 3, 2011 at 7:22 PM, Tabitha Samuel <tabitha.sam...@gmail.com>wrote:
>
>
>
>
>
>
>
> > K, so that worked...
>
> > This is what I got:
> > In [5]: i = Staff.objects.using('gold').get(username='tsamuel')
>
> > In [6]: i.nics_group.n_group_name
> > Out[6]: u'Systems and Operations'
>
> > Looks like the foreign key is working fine from the db's perspective.
> > This is how I'm getting the form:
> > form = StaffForm(instance = Staff.objects.using('gold').get(username
> > =current_staff))
> > where current_staff = 'tsamuel'
> > and then if I do a print form, I get a relation n_nics_groups does not
> > exist error.
>
> > Once again, thank you so much for your help, I really appreciate it!
>
> > Tabitha
>
> > On Nov 3, 1:26 pm, Furbee <Furbeena...@gmail.com> wrote:
> > > I may have lead you astray. I set up the same models on my end and get
> > the
> > > same query; it didn't show the join of the foreign key in the QuerySet of
> > > Staff, but when I did a get() on username='tsamuel' I got a Staff object.
> > > Then I was able to get the group they belonged to. This was successful
> > for
> > > me:
>
> > > Here's my data:
>
> > > table: n_nics_groups
> > > n_group_number; n_group_name
> > > 1; "TestGroup1"
> > > 2; "TestGroup2"
> > > 3; "TestGroup3"
>
> > > table: n_test_staff
>
> > "tfigura";"";"";"";"";"";"";"";"";2;"";"''";"";"";"";1;1;1;;"''";"''";"''";"''";"";FALSE;TRUE
>
> > "tsamuel";"";"";"";"";"";"";"";"";1;"";"''";"";"";"";1;1;1;;"''";"''";"''";"''";"''";FALSE;TRUE
>
> > > 'tfigura' is in group with n_group_number 2, tsamuel is in group with
> > > n_group_number 1.
>
> > > python manage.py shell:
>
> > > >>> from project.models import NICSGroupType, Staff
> > > >>> i = Staff.objects.get(username='tsamuel')
> > > >>> i.nics_group.n_group_name
> > > >>> u'TestGroup1'
>
> > > Is this operational for your instance? If not, I would double check that
> > > the n_nics_groups table definitely exists in the datasource you defined
> > as
> > > 'gold.' This should be defined in the DATABASES section of settings.py.
> > It
> > > looks like it is the database 'public' from your example, but double
> > check
> > > that the 'gold' DATABASE points there.
>
> > > Otherwise, I wonder if it is somewhere where you are defining the form
> > > object. First, let's verify that the foreign key reference is being
> > honored
> > > on your system, by running the above test, to verify that the group is
> > > printed, when you get() a specific record and print the
> > > nics_group.n_group_name.
>
> > > Thanks,
>
> > > Furbee
>
> > > On Wed, Nov 2, 2011 at 5:09 PM, Tabitha Samuel <tabitha.sam...@gmail.com>wrote:>
> > Thank you so much for your reply! So I got a "Staff object has no
> > > > attribute 'query'" error when I did it with the get. I got the sql
> > > > when I tried it with the filter instead (instance =
> > > > Staff.objects.using('gold').filter(username='tsamuel') >>
> > > > str(instance.query))this is what I'm getting:
>
> > > > 'SELECT "n_test_staff"."username", "n_test_staff"."home_phone",
> > > > "n_test_staff"."cell_phone", "n_test_staff"."home_address",
> > > > "n_test_staff"."home_city", "n_test_staff"."home_state",
> > > > "n_test_staff"."home_zip", "n_test_staff"."emergency_name",
> > > > "n_test_staff"."emergency_phone", "n_test_staff"."nics_group",
> > > > "n_test_staff"."room_number", "n_test_staff"."title",
> > > > "n_test_staff"."supervisor", "n_test_staff"."url",
> > > > "n_test_staff"."im", "n_test_staff"."last_modification_time",
> > > > "n_test_staff"."start_date", "n_test_staff"."creation_time",
> > > > "n_test_staff"."termination_date", "n_test_staff"."bio",
> > > > "n_test_staff"."photopath", "n_test_staff"."office_phone",
> > > > "n_test_staff"."email", "n_test_staff"."preferred_name",
> > > > "n_test_staff"."deleted", "n_test_staff"."viewable" FROM
> > > > "n_test_staff" WHERE "n_test_staff"."username" = tsamuel '
>
> > > > Looks like from the query, is not looking into the n_nics_groups
> > > > table. Question is why?
>
> > > > Tabitha
>
> > > > On Nov 2, 6:00 pm, Furbee <Furbeena...@gmail.com> wrote:
> > > > > Can you try this and tell us what you see:
>
> > > > > Run a shell using python manage.py shell
>
> > > > > >>> instance = Staff.objects.using('gold').get(username='tsamuel')
> > > > > >>> str(instance.query)
>
> > > > > This will tell us whether or not the database, reference, and such
> > are
> > > > > correctly translating into a query. The error means Django is
> > sending an
> > > > > erroneous query to your database layer.
>
> > > > > Furbeenator
>
> > > > > On Wed, Nov 2, 2011 at 1:54 PM, Tabitha Samuel <
> > tabitha.sam...@gmail.com
> > > > >wrote:
>
> > > > > > Hi,
>
> > > > > > In brief here is my problem. I have two simple tables, one has a
> > one
> > > > > > to many relation with the other. The problem I run into is that
> > when I
> > > > > > try to create a form instance of the child, and try to print it or
> > > > > > render it in a template, I run into a "relation not found" error
> > for
> > > > > > the parent. Simply querying the parent works without a problem.
>
> > > > > > This is what my models.py looks like:
> > > > > > from django.db import models
>
> > > > > > class NICSGroupType(models.Model):
> > > > > > n_group_number = models.IntegerField(primary_key = True)
> > > > > > n_group_name = models.CharField(max_length = 512)
> > > > > > class Meta:
> > > > > > db_table = "n_nics_groups"
>
> > > > > > class Staff(models.Model):
> > > > > > username = models.CharField(primary_key =
> > True,
> > > > > > max_length = 50)
> > > > > > home_phone = models.CharField(max_length = 12,
> > > > > > null=True)
> > > > > > cell_phone = models.CharField(max_length = 12,
> > > > > > null = True)
> > > > > > home_address = models.CharField(max_length =
> > 1024,
> > > > > > null = True)
> > > > > > home_city = models.CharField(max_length = 64,
> > > > > > null = True)
> > > > > > home_state = models.CharField(max_length = 32,
> > > > > > null = True)
> > > > > > home_zip = models.CharField(max_length = 10,
> > > > > > null = True)
> > > > > > emergency_name = models.CharField(max_length =64,
> > > > > > null = True)
> > > > > > emergency_phone = models.CharField(max_length = 12,
> > > > > > null = True)
> > > > > > nics_group = models.ForeignKey(NICSGroupType,
> > > > > > to_field ='n_group_number', db_column="nics_group",
> > > > > > null=True,blank=True)
> > > > > > room_number = models.CharField(max_length = 32,
> > > > > > null = True)
> > > > > > title = models.CharField(max_length = 64)
> > > > > > supervisor = models.CharField(max_length = 25,
> > > > > > null = True, blank = True)
> > > > > > url = models.CharField(max_length =
> > > > > > 256,null = True, blank = True)
> > > > > > im = models.CharField(max_length = 32,
> > > > > > null = True, blank=True)
> > > > > > last_modification_time = models.IntegerField()
> > > > > > start_date = models.IntegerField()
> > > > > > creation_time = models.IntegerField()
> > > > > > termination_date = models.IntegerField(null = True,
> > > > > > blank = True)
> > > > > > bio = models.TextField()
> > > > > > photopath = models.CharField(max_length =
> > 5048)
> > > > > > office_phone = models.CharField(max_length=12)
> > > > > > email = models.CharField(max_length = 256)
> > > > > > preferred_name = models.CharField(max_length = 50,
> > > > > > null = True, blank = True)
> > > > > > deleted = models.BooleanField(default =
> > False)
> > > > > > viewable = models.BooleanField(default =
> > True)
>
> > > > > > class Meta:
> > > > > > db_table = "n_test_staff"
>
> > > > > > The tables that it corresponds to looks like this:
>
> > > > > > \d n_test_staff
> > > > > > Table "public.n_test_staff"
> > > > > > Column | Type | Modifiers
> > > > > > ------------------------+------------------------+-----------
> > > > > > username | character varying(25) |
> > > > > > home_phone | character varying(12) |
> > > > > > cell_phone | character varying(12) |
> > > > > > home_address | character varying(256) |
> > > > > > home_city | character varying(64) |
> > > > > > home_state | character varying(32) |
> > > > > > home_zip | character varying(10) |
> > > > > > emergency_name | character varying(64) |
> > > > > > emergency_phone | character varying(12) |
> > > > > > nics_group | integer |
> > > > > > room_number | character varying(32) |
> > > > > > title | character varying(64) |
> > > > > > supervisor | character varying(25) |
> > > > > > url | character varying(256) |
> > > > > > im | character varying(32) |
> > > > > > last_modification_time | integer |
> > > > > > start_date | integer |
> > > > > > creation_time | integer |
> > > > > > termination_date | integer |
> > > > > > bio | text |
> > > > > > photopath | text |
> > > > > > office_phone | character varying(12) |
> > > > > > email | text |
> > > > > > preferred_name | character varying(50) |
> > > > > > deleted | boolean |
> > > > > > viewable
>
> ...
>
> read more »
--
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+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
No comments:
Post a Comment