Re: Relation not found error while dealing with foreign keys and forms
gt; >>> print form > > Username: > id="id_username" type="text" name="username" value="tsamuel" maxlength="50" > > /> > > Nics group: > name="nics_group" id="id_nics_group"> > > - > > 2: Group2 > > 1: Group1 > > > > > Now, if I delete the default database's n_nics_groups table also, so it > > should all be using the 'staff' database, the only place n_test_staff and > > n_nics_groups exist now. > > >>> from models import Staff, NICSGroupType > > >>> from django.forms import * > > >>> class StaffForm(ModelForm): > > ... class Meta: > > ... model = Staff > > ... > > >>> staff = Staff.objects.using('staff').get(username='tsamuel') > > >>> print staff > > tsamuel > > >>> form = StaffForm(instance=staff) > > >>> print form > > Traceback (most recent call last): > > File "", line 1, in > > File "/usr/lib/python2.5/site-packages/django/utils/encoding.py", line > > 27, in __str__ > > return self.__unicode__().encode('utf-8') > > File "/usr/lib/python2.5/site-packages/django/forms/forms.py", line 95, > > in __unicode__ > > return self.as_table() > > File "/usr/lib/python2.5/site-packages/django/forms/forms.py", line 217, > > in as_table > > errors_on_separate_row = False) > > File "/usr/lib/python2.5/site-packages/django/forms/forms.py", line 180, > > in _html_output > > 'field': unicode(bf), > > File "/usr/lib/python2.5/site-packages/django/forms/forms.py", line 408, > > in __unicode__ > > return self.as_widget() > > File "/usr/lib/python2.5/site-packages/django/forms/forms.py", line 439, > > in as_widget > > return widget.render(name, self.value(), attrs=attrs) > > File "/usr/lib/python2.5/site-packages/django/forms/widgets.py", line > > 516, in render > > options = self.render_options(choices, [value]) > > File "/usr/lib/python2.5/site-packages/django/forms/widgets.py", line > > 533, in render_options > > for option_value, option_label in chain(self.choices, choices): > > File "/usr/lib/python2.5/site-packages/django/forms/models.py", line > > 882, in __iter__ > > for obj in self.queryset.all(): > > File "/usr/lib/python2.5/site-packages/django/db/models/query.py", line > > 107, in _result_iter > > self._fill_cache() > > File "/usr/lib/python2.5/site-packages/django/db/models/query.py", line > > 772, in _fill_cache > > self._result_cache.append(self._iter.next()) > > File "/usr/lib/python2.5/site-packages/django/db/models/query.py", line > > 273, in iterator > > for row in compiler.results_iter(): > > File > > "/usr/lib/python2.5/site-packages/django/db/models/sql/compiler.py", line > > 680, in results_iter > > for rows in self.execute_sql(MULTI): > > File > > "/usr/lib/python2.5/site-packages/django/db/models/sql/compiler.py", line > > 735, in execute_sql > > cursor.execute(sql, params) > > File > > "/usr/lib/python2.5/site-packages/django/db/backends/postgresql_psycopg2/base.py", > > line 44, in execute > > return self.cursor.execute(query, args) > > DatabaseError: relation "n_nics_groups" does not exist > > > This seems to be a bug in the ModelForm class that is not honoring the > > referenced fields that exist outside the default database. I tried > > appending the using('staff') to a few different places in the StaffForm > > class and also to the instance of StaffForm, but to no avail. Anybody else > > see this as not a bug? > > > Furbee > > > On Fri, Nov 4, 2011 at 1:45 PM, Tabitha Samuel > > <tabitha.sam...@gmail.com>wrote: > > >> I don't mean to be spamming you like this, just thought you might be > >> interested in this result: > > >> So I created the same tables (n_test_staff and n_nics_groups) in the > >> default gibbs database. I removed the using part in the form statement > >> (form = StaffForm(instance = Staff.objects.using('gold').get(username > >> =current_staff), so now it looks like form = StaffForm(instance = > >> Staff.objects.get(username =current_staff) and it works fine, > >> everything is getting displayed in the view perfectly!! > > >> Problem is that those two tables have to live in the
Re: Relation not found error while dealing with foreign keys and forms
I don't mean to be spamming you like this, just thought you might be interested in this result: So I created the same tables (n_test_staff and n_nics_groups) in the default gibbs database. I removed the using part in the form statement (form = StaffForm(instance = Staff.objects.using('gold').get(username =current_staff), so now it looks like form = StaffForm(instance = Staff.objects.get(username =current_staff) and it works fine, everything is getting displayed in the view perfectly!! Problem is that those two tables have to live in the other database - gold. Not sure how to proceed from here. I may just have to remove the foreign key reference for the time being and update it manually in the code, until a fix can be found for this. Tabitha On Nov 4, 3:19 pm, Tabitha Samuel <tabitha.sam...@gmail.com> wrote: > I found this patch for the raw function (https:// > code.djangoproject.com/attachment/ticket/13805/manager.patch), because > according to this ticket (https://code.djangoproject.com/ticket/ > 13805), .raw does not work in a multi db env. So this is what I have: > > in django/db/models/manager.py, I have created a new function: > def raw(self, raw_query, params=None, using=None, *args, **kwargs): > if using is None: > using = self._db > print using > return RawQuerySet(raw_query=raw_query, model=self.model, > params=params, using=using, *args, **kwargs) > > The print using returns "gold" so I know it is using this method. > > Now, I have > form = StaffForm(instance = Staff.objects.raw("SELECT s.*, > g.n_group_name FROM n_test_staff s LEFT JOIN n_nics_groups g > ON(g.n_group_number = s.nics_group) WHERE s.username = > 'tsamuel'",None,"gold")) > in my view and I am still getting the error: > AttributeError at /staff/staffinfo > 'RawQuerySet' object has no attribute '_meta' > > This is the traceback: > Traceback: > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > core/handlers/base.py" in get_response > 111. response = callback(request, > *callback_args, **callback_kwargs) > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > contrib/auth/decorators.py" in _wrapped_view > 23. return view_func(request, *args, **kwargs) > File "/nics/a/home/tsamuel/tssandbox/gibbs/utils/decorators.py" in > decorate > 11. return view_func(request, *args, **kws) > File "/nics/a/home/tsamuel/tssandbox/gibbs/../gibbs/staff/views.py" in > staff_info > 156. form = StaffForm(instance = Staff.objects.raw("SELECT s.*, > g.n_group_name FROM n_test_staff s LEFT JOIN n_nics_groups g > ON(g.n_group_number = s.nics_group) WHERE s.username = > 'tsamuel'",None,"gold")) > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > forms/models.py" in __init__ > 237. object_data = model_to_dict(instance, opts.fields, > opts.exclude) > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > forms/models.py" in model_to_dict > 110. opts = instance._meta > > Exception Type: AttributeError at /staff/staffinfo > Exception Value: 'RawQuerySet' object has no attribute '_meta' > > On Nov 4, 2:49 pm, Tabitha Samuel <tabitha.sam...@gmail.com> wrote: > > > > > > > > > One thought I have is that the using() is messing things up. Would it > > be possible for you to create a second non-default db, throw these two > > tables in there and then try the same thing? If that works for you, > > then I must have a ghost sitting in my system! :-| > > > On Nov 4, 2:28 pm, Furbee <furbeena...@gmail.com> wrote: > > > > That is very strange... I recreated this on my development system and it > > > worked fine. I looked for Django bugs, but haven't found any related to > > > this issue. To be clear, the table n_nics_groups definitely exists in the > > > same database as n_test_staff, right? It does in mine because I used > > > python > > > manage.py syncdb to create them from the models. If so, maybe we should > > > try > > > to create a raw() query to see if the system has a bug creating the query. > > > This should be similar: > > > > form = StaffForm(instance = Staff.objects.raw("SELECT s.*, g.n_group_name > > > FROM n_test_staff s LEFT JOIN n_nics_groups g ON(g.n_group_number = > > > s.nics_group) WHERE s.username = 'tsamuel')) > > > > If that throws an error, we may have a problem in the DB layer. > > > > Thanks, > > > > Furbee > > > > On Fri, Nov 4, 2011 at 10:2
Re: Relation not found error while dealing with foreign keys and forms
I found this patch for the raw function (https:// code.djangoproject.com/attachment/ticket/13805/manager.patch), because according to this ticket (https://code.djangoproject.com/ticket/ 13805), .raw does not work in a multi db env. So this is what I have: in django/db/models/manager.py, I have created a new function: def raw(self, raw_query, params=None, using=None, *args, **kwargs): if using is None: using = self._db print using return RawQuerySet(raw_query=raw_query, model=self.model, params=params, using=using, *args, **kwargs) The print using returns "gold" so I know it is using this method. Now, I have form = StaffForm(instance = Staff.objects.raw("SELECT s.*, g.n_group_name FROM n_test_staff s LEFT JOIN n_nics_groups g ON(g.n_group_number = s.nics_group) WHERE s.username = 'tsamuel'",None,"gold")) in my view and I am still getting the error: AttributeError at /staff/staffinfo 'RawQuerySet' object has no attribute '_meta' This is the traceback: Traceback: File "/nics/a/applications/gibbs/python/site-packages_django/django/ core/handlers/base.py" in get_response 111. response = callback(request, *callback_args, **callback_kwargs) File "/nics/a/applications/gibbs/python/site-packages_django/django/ contrib/auth/decorators.py" in _wrapped_view 23. return view_func(request, *args, **kwargs) File "/nics/a/home/tsamuel/tssandbox/gibbs/utils/decorators.py" in decorate 11. return view_func(request, *args, **kws) File "/nics/a/home/tsamuel/tssandbox/gibbs/../gibbs/staff/views.py" in staff_info 156. form = StaffForm(instance = Staff.objects.raw("SELECT s.*, g.n_group_name FROM n_test_staff s LEFT JOIN n_nics_groups g ON(g.n_group_number = s.nics_group) WHERE s.username = 'tsamuel'",None,"gold")) File "/nics/a/applications/gibbs/python/site-packages_django/django/ forms/models.py" in __init__ 237. object_data = model_to_dict(instance, opts.fields, opts.exclude) File "/nics/a/applications/gibbs/python/site-packages_django/django/ forms/models.py" in model_to_dict 110. opts = instance._meta Exception Type: AttributeError at /staff/staffinfo Exception Value: 'RawQuerySet' object has no attribute '_meta' On Nov 4, 2:49 pm, Tabitha Samuel <tabitha.sam...@gmail.com> wrote: > One thought I have is that the using() is messing things up. Would it > be possible for you to create a second non-default db, throw these two > tables in there and then try the same thing? If that works for you, > then I must have a ghost sitting in my system! :-| > > On Nov 4, 2:28 pm, Furbee <furbeena...@gmail.com> wrote: > > > > > > > > > That is very strange... I recreated this on my development system and it > > worked fine. I looked for Django bugs, but haven't found any related to > > this issue. To be clear, the table n_nics_groups definitely exists in the > > same database as n_test_staff, right? It does in mine because I used python > > manage.py syncdb to create them from the models. If so, maybe we should try > > to create a raw() query to see if the system has a bug creating the query. > > This should be similar: > > > form = StaffForm(instance = Staff.objects.raw("SELECT s.*, g.n_group_name > > FROM n_test_staff s LEFT JOIN n_nics_groups g ON(g.n_group_number = > > s.nics_group) WHERE s.username = 'tsamuel')) > > > If that throws an error, we may have a problem in the DB layer. > > > Thanks, > > > Furbee > > > On Fri, Nov 4, 2011 at 10:29 AM, Tabitha Samuel > > <tabitha.sam...@gmail.com>wrote: > > > > The error that I'm getting is on the second form instantiation, that > > > is on the line: > > > > form = StaffForm(instance = Staff.objects.using('gold').get(username = > > > current_staff) > > > where current_staff='tsamuel' for instance > > > > This is the traceback of the error that I get when I do a print form > > > right after getting the form: > > > Environment: > > > > Request Method: GET > > > Request URL:http://watermelon.nics.utk.edu:8004/staff/staffinfo > > > > Django Version: 1.3.1 > > > Python Version: 2.6.2 > > > Installed Applications: > > > ['django.contrib.auth', > > > 'django.contrib.contenttypes', > > > 'django.contrib.sessions', > > > 'django.contrib.sites', > > > 'gibbs.quartermaster', > > > 'gibbs.userportal', > > > 'gibbs.reports', > > > 'gibbs.events', > > > 'gibbs.job_stats', > > > 'gibbs.simulator', > > > 'gibbs.staff'] > > > Installed Middleware: > > &g
Re: Relation not found error while dealing with foreign keys and forms
One thought I have is that the using() is messing things up. Would it be possible for you to create a second non-default db, throw these two tables in there and then try the same thing? If that works for you, then I must have a ghost sitting in my system! :-| On Nov 4, 2:28 pm, Furbee <furbeena...@gmail.com> wrote: > That is very strange... I recreated this on my development system and it > worked fine. I looked for Django bugs, but haven't found any related to > this issue. To be clear, the table n_nics_groups definitely exists in the > same database as n_test_staff, right? It does in mine because I used python > manage.py syncdb to create them from the models. If so, maybe we should try > to create a raw() query to see if the system has a bug creating the query. > This should be similar: > > form = StaffForm(instance = Staff.objects.raw("SELECT s.*, g.n_group_name > FROM n_test_staff s LEFT JOIN n_nics_groups g ON(g.n_group_number = > s.nics_group) WHERE s.username = 'tsamuel')) > > If that throws an error, we may have a problem in the DB layer. > > Thanks, > > Furbee > > On Fri, Nov 4, 2011 at 10:29 AM, Tabitha Samuel > <tabitha.sam...@gmail.com>wrote: > > > > > > > > > The error that I'm getting is on the second form instantiation, that > > is on the line: > > > form = StaffForm(instance = Staff.objects.using('gold').get(username = > > current_staff) > > where current_staff='tsamuel' for instance > > > This is the traceback of the error that I get when I do a print form > > right after getting the form: > > Environment: > > > Request Method: GET > > Request URL:http://watermelon.nics.utk.edu:8004/staff/staffinfo > > > Django Version: 1.3.1 > > Python Version: 2.6.2 > > Installed Applications: > > ['django.contrib.auth', > > 'django.contrib.contenttypes', > > 'django.contrib.sessions', > > 'django.contrib.sites', > > 'gibbs.quartermaster', > > 'gibbs.userportal', > > 'gibbs.reports', > > 'gibbs.events', > > 'gibbs.job_stats', > > 'gibbs.simulator', > > 'gibbs.staff'] > > Installed Middleware: > > ('django.contrib.csrf.middleware.CsrfViewMiddleware', > > 'django.middleware.common.CommonMiddleware', > > 'django.contrib.csrf.middleware.CsrfResponseMiddleware', > > 'django.contrib.sessions.middleware.SessionMiddleware', > > 'django.contrib.auth.middleware.AuthenticationMiddleware') > > > Traceback: > > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > > core/handlers/base.py" in get_response > > 111. response = callback(request, > > *callback_args, **callback_kwargs) > > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > > contrib/auth/decorators.py" in _wrapped_view > > 23. return view_func(request, *args, **kwargs) > > File "/nics/a/home/tsamuel/tssandbox/gibbs/utils/decorators.py" in > > decorate > > 11. return view_func(request, *args, **kws) > > File "/nics/a/home/tsamuel/tssandbox/gibbs/../gibbs/staff/views.py" in > > staff_info > > 159. print form > > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > > utils/encoding.py" in __str__ > > 27. return self.__unicode__().encode('utf-8') > > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > > forms/forms.py" in __unicode__ > > 95. return self.as_table() > > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > > forms/forms.py" in as_table > > 217. errors_on_separate_row = False) > > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > > forms/forms.py" in _html_output > > 180. 'field': unicode(bf), > > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > > forms/forms.py" in __unicode__ > > 408. return self.as_widget() > > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > > forms/forms.py" in as_widget > > 439. return widget.render(name, self.value(), attrs=attrs) > > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > > forms/widgets.py" in render > > 516. options = self.render_options(choices, [value]) > > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > > forms/widgets.py" in render_options > > 533. for option_value, option_label in chain(self.choic
Re: Relation not found error while dealing with foreign keys and forms
Yep, n_nics_groups and n_test_staff exist in the same 'gold' database. So when I tried: form = StaffForm(instance = Staff.objects.using('gold').raw("SELECT s.*, g.n_group_name FROM n_test_staff s LEFT JOIN n_nics_groups g ON(g.n_group_number = s.nics_group) WHERE s.username = 'tsamuel')")) I got the error: 'QuerySet' object has no attribute 'raw' and when I tried: form = StaffForm(instance = Staff.objects.raw("SELECT s.*, g.n_group_name FROM n_test_staff s LEFT JOIN n_nics_groups g ON(g.n_group_number = s.nics_group) WHERE s.username = 'tsamuel')")).using('gold') 'RawQuerySet' object has no attribute '_meta' So here is one thing, both tables (n_test_staff and n_nics_groups) were pre-existing, meaning I have not created them using syncdb from the models. They're been used by other applications within my group. I've just created the models that would correspond to these tables, I have not run syncdb on the database. I am a little hesitant to do so, since I don't want to change the db values and mess up other applications. Tabitha On Nov 4, 2:28 pm, Furbee <furbeena...@gmail.com> wrote: > That is very strange... I recreated this on my development system and it > worked fine. I looked for Django bugs, but haven't found any related to > this issue. To be clear, the table n_nics_groups definitely exists in the > same database as n_test_staff, right? It does in mine because I used python > manage.py syncdb to create them from the models. If so, maybe we should try > to create a raw() query to see if the system has a bug creating the query. > This should be similar: > > form = StaffForm(instance = Staff.objects.raw("SELECT s.*, g.n_group_name > FROM n_test_staff s LEFT JOIN n_nics_groups g ON(g.n_group_number = > s.nics_group) WHERE s.username = 'tsamuel')) > > If that throws an error, we may have a problem in the DB layer. > > Thanks, > > Furbee > > On Fri, Nov 4, 2011 at 10:29 AM, Tabitha Samuel > <tabitha.sam...@gmail.com>wrote: > > > > > > > > > The error that I'm getting is on the second form instantiation, that > > is on the line: > > > form = StaffForm(instance = Staff.objects.using('gold').get(username = > > current_staff) > > where current_staff='tsamuel' for instance > > > This is the traceback of the error that I get when I do a print form > > right after getting the form: > > Environment: > > > Request Method: GET > > Request URL:http://watermelon.nics.utk.edu:8004/staff/staffinfo > > > Django Version: 1.3.1 > > Python Version: 2.6.2 > > Installed Applications: > > ['django.contrib.auth', > > 'django.contrib.contenttypes', > > 'django.contrib.sessions', > > 'django.contrib.sites', > > 'gibbs.quartermaster', > > 'gibbs.userportal', > > 'gibbs.reports', > > 'gibbs.events', > > 'gibbs.job_stats', > > 'gibbs.simulator', > > 'gibbs.staff'] > > Installed Middleware: > > ('django.contrib.csrf.middleware.CsrfViewMiddleware', > > 'django.middleware.common.CommonMiddleware', > > 'django.contrib.csrf.middleware.CsrfResponseMiddleware', > > 'django.contrib.sessions.middleware.SessionMiddleware', > > 'django.contrib.auth.middleware.AuthenticationMiddleware') > > > Traceback: > > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > > core/handlers/base.py" in get_response > > 111. response = callback(request, > > *callback_args, **callback_kwargs) > > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > > contrib/auth/decorators.py" in _wrapped_view > > 23. return view_func(request, *args, **kwargs) > > File "/nics/a/home/tsamuel/tssandbox/gibbs/utils/decorators.py" in > > decorate > > 11. return view_func(request, *args, **kws) > > File "/nics/a/home/tsamuel/tssandbox/gibbs/../gibbs/staff/views.py" in > > staff_info > > 159. print form > > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > > utils/encoding.py" in __str__ > > 27. return self.__unicode__().encode('utf-8') > > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > > forms/forms.py" in __unicode__ > > 95. return self.as_table() > > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > > forms/forms.py" in as_table > > 217. errors_on_separate_row = False) > > File "/nics/a/applications/gibbs/python/site-packages_django/django/ > > forms/forms.py" in _html_output > > 180. 'field': unicode(bf)
Re: Relation not found error while dealing with foreign keys and forms
The error that I'm getting is on the second form instantiation, that is on the line: form = StaffForm(instance = Staff.objects.using('gold').get(username = current_staff) where current_staff='tsamuel' for instance This is the traceback of the error that I get when I do a print form right after getting the form: Environment: Request Method: GET Request URL: http://watermelon.nics.utk.edu:8004/staff/staffinfo Django Version: 1.3.1 Python Version: 2.6.2 Installed Applications: ['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'gibbs.quartermaster', 'gibbs.userportal', 'gibbs.reports', 'gibbs.events', 'gibbs.job_stats', 'gibbs.simulator', 'gibbs.staff'] Installed Middleware: ('django.contrib.csrf.middleware.CsrfViewMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.csrf.middleware.CsrfResponseMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware') Traceback: File "/nics/a/applications/gibbs/python/site-packages_django/django/ core/handlers/base.py" in get_response 111. response = callback(request, *callback_args, **callback_kwargs) File "/nics/a/applications/gibbs/python/site-packages_django/django/ contrib/auth/decorators.py" in _wrapped_view 23. return view_func(request, *args, **kwargs) File "/nics/a/home/tsamuel/tssandbox/gibbs/utils/decorators.py" in decorate 11. return view_func(request, *args, **kws) File "/nics/a/home/tsamuel/tssandbox/gibbs/../gibbs/staff/views.py" in staff_info 159. print form File "/nics/a/applications/gibbs/python/site-packages_django/django/ utils/encoding.py" in __str__ 27. return self.__unicode__().encode('utf-8') File "/nics/a/applications/gibbs/python/site-packages_django/django/ forms/forms.py" in __unicode__ 95. return self.as_table() File "/nics/a/applications/gibbs/python/site-packages_django/django/ forms/forms.py" in as_table 217. errors_on_separate_row = False) File "/nics/a/applications/gibbs/python/site-packages_django/django/ forms/forms.py" in _html_output 180. 'field': unicode(bf), File "/nics/a/applications/gibbs/python/site-packages_django/django/ forms/forms.py" in __unicode__ 408. return self.as_widget() File "/nics/a/applications/gibbs/python/site-packages_django/django/ forms/forms.py" in as_widget 439. return widget.render(name, self.value(), attrs=attrs) File "/nics/a/applications/gibbs/python/site-packages_django/django/ forms/widgets.py" in render 516. options = self.render_options(choices, [value]) File "/nics/a/applications/gibbs/python/site-packages_django/django/ forms/widgets.py" in render_options 533. for option_value, option_label in chain(self.choices, choices): File "/nics/a/applications/gibbs/python/site-packages_django/django/ forms/models.py" in __iter__ 882. for obj in self.queryset.all(): File "/nics/a/applications/gibbs/python/site-packages_django/django/db/ models/query.py" in _result_iter 107. self._fill_cache() File "/nics/a/applications/gibbs/python/site-packages_django/django/db/ models/query.py" in _fill_cache 772. self._result_cache.append(self._iter.next()) File "/nics/a/applications/gibbs/python/site-packages_django/django/db/ models/query.py" in iterator 273. for row in compiler.results_iter(): File "/nics/a/applications/gibbs/python/site-packages_django/django/db/ models/sql/compiler.py" in results_iter 680. for rows in self.execute_sql(MULTI): File "/nics/a/applications/gibbs/python/site-packages_django/django/db/ models/sql/compiler.py" in execute_sql 735. cursor.execute(sql, params) File "/nics/a/applications/gibbs/python/site-packages_django/django/db/ backends/util.py" in execute 34. return self.cursor.execute(sql, params) File "/nics/a/applications/gibbs/python/site-packages_django/django/db/ backends/postgresql_psycopg2/base.py" in execute 44. return self.cursor.execute(query, args) Exception Type: DatabaseError at /staff/staffinfo Exception Value: relation "n_nics_groups" does not exist Tabitha On Nov 4, 11:31 am, Furbee <furbeena...@gmail.com> wrote: > Oh no, that would not be a good thing to share! :-) That's a bummer that > the upgrade broke things. > > So, the error is being raised on this line? > staff_form = StaffForm(request.POST, instance=staffinstance).using('gold') > > Furbee > > On Fri, Nov 4, 2011 at 8:02 AM, Tabitha Samuel > <tabitha.sam...@gmail.com>wrote: > > > > > > > > > So this is how I'm creating the
Re: Relation not found error while dealing with foreign keys and forms
So this is how I'm creating the staff form: def staff_info(request, *args, **kws): class StaffForm(forms.ModelForm): class Meta: model= Staff if request.method == 'POST' and request.POST['event'] == 'choosestaff': current_staff = request.POST.get('selectstaff') elif request.method == 'POST' and request.POST['event'] == 'editstaff': #print request current_staff = request.POST.get('username') errors = validate_staff(request) if errors is not None and len(errors) == 0: print request.POST staffinstance = Staff.objects.using('gold').get(username = current_staff) #new_form = StaffForm(instance=staffinstance) #print new_form staff_form = StaffForm(request.POST, instance=staffinstance).using('gold') staff_form.last_modification_time = datetime.now() staff_form.supervisor = staffinstance.supervisor staff_form.start_date = staffinstance.start_date staff_form.creation_time = staffinstance.creation_time staff_form.termination_date = staffinstance.termination_date staff_form.using('gold').save() else: current_staff = request.user.username tg_info,staff, nics_info = get_tg_info(current_staff) groups = NICSGroupType.objects.using('gold').all() form = StaffForm(instance = Staff.objects.using('gold').select_related().get(username = current_staff)) print form return render_to_response('staff/staffinfo.html',{'form':form, 'tginfo':tg_info, 'nicsinfo': nics_info, 'staff':staff, 'is_admin':is_admin, 'errors':errors},context_instance = RequestContext(request)) Funny thing is that this worked perfectly in version 1.1a of django. All trouble started when I switched to 1.3. I was using extDbManager to create the gold connection in the 1.1 version since 'gold' is a non- default db (used only for this model) and 1.1 only had in built support for a single db. And yes, I do have a page for the view. Problem is that it is passcode protected and I don't think I'm at liberty to give you access to it. : ( Tabitha On Nov 4, 10:44 am, Mark Furbee <markfur...@gmail.com> wrote: > Good Morning Tabitha. > > Actually, do you have a model for StaffForm? That is the object being > instantiated and then causing the error. If there is no nics group > reference field in the StaffForm object, it may raise this error. Also, do > you have this running in a view/template? Do you have a real page that > you've tried this on, or have you just tried it in the shell? > > Thanks, > > Furbee > > On Fri, Nov 4, 2011 at 7:02 AM, Tabitha Samuel > <tabitha.sam...@gmail.com>wrote: > > > > > > > > > Here is staff/models.py > > > 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
Re: Relation not found error while dealing with foreign keys and forms
Here is staff/models.py 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.
Re: Relation not found error while dealing with foreign keys and forms
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...@
Re: Relation not found error while dealing with foreign keys and forms
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() > > cr
Relation not found error while dealing with foreign keys and forms
e ='tsamuel')) print form the print form throws the error: relation "n_nics_groups" does not exist I know the model can "see" the relation on other occassions because statements like groups = NICSGroupType.objects.using('gold').all() work without a problem. Wondering why the foreign key causes this problem. I hope you can help me with this issue as I haven't been able to find much help anywhere else on the web (and I've been looking into this for about a week now!) Please let me know if you need any more information. Thanks!! Tabitha Samuel <tabitha.sam...@gmail.com> -- 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.