I figured it out the answer to my original question.  One of the
fields was a ForeignKey field and I was just giving it the string
representation of the foreignkey object, rather than its primary key
(which is an integer and not a string).

Thanks for the help though, Bill!

cheers,
Guillaume

On Feb 17, 2:18 pm, Gchorn <guillaumech...@gmail.com> wrote:
> Unfortunately, that doesn't seem to be the case.  I have the database
> user and password in my settings.py file, but I still have to do a
> "sudo su postgres" to switch to postgres in the terminal before I can
> access my PostgreSQL database through the Django database API.
> Otherwise when I try to access it through my normal username
> "guillaume", I get:
>
> Traceback (most recent call last):
>   File "<console>", line 1, in <module>
>   File "/usr/local/lib/python2.7/dist-packages/django/db/models/
> query.py", line 69, in __repr__
>     data = list(self[:REPR_OUTPUT_SIZE + 1])
>   File "/usr/local/lib/python2.7/dist-packages/django/db/models/
> query.py", line 84, in __len__
>     self._result_cache.extend(self._iter)
>   File "/usr/local/lib/python2.7/dist-packages/django/db/models/
> query.py", line 273, in iterator
>     for row in compiler.results_iter():
>   File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/
> compiler.py", line 680, in results_iter
>     for rows in self.execute_sql(MULTI):
>   File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/
> compiler.py", line 734, in execute_sql
>     cursor = self.connection.cursor()
>   File "/usr/local/lib/python2.7/dist-packages/django/db/backends/
> __init__.py", line 250, in cursor
>     cursor = self.make_debug_cursor(self._cursor())
>   File "/usr/local/lib/python2.7/dist-packages/django/db/backends/
> postgresql_psycopg2/base.py", line 140, in _cursor
>     self.connection = Database.connect(**conn_params)
> OperationalError: FATAL:  Peer authentication failed for user
> "postgres"
>
> However, I found a way around the "out" file issue I mentioned
> earlier; I did a search for my yaml file and changed the write
> permission on it to all users, so I was then able to access it while
> in the API under the postgres username.  After I did so and attempted
> to write serialized data to it, I got the following error:
>
> >>> yaml_serializer.serialize(Player.objects.all(),stream=out)
>
> Traceback (most recent call last):
>   File "<console>", line 1, in <module>
>   File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
> base.py", line 55, in serialize
>     return self.getvalue()
>   File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
> pyyaml.py", line 44, in getvalue
>     return self.stream.getvalue()
> AttributeError: 'file' object has no attribute 'getvalue'
>
> It does seem to have written to the yaml output file.  In that, I got:
>
> - fields: {age: 25, ast: 1, blk: 2, drb: 17, fg: 7, fga: 16,
> first_name: Jeff, ft: 7,
>     fta: 12, gp: 8, last_name: Adrien, mp: 63, orb: 5, pf: 13, pos:
> SF, pts: 21, stl: 0,
>     team: 1, three_pointers: 0, threes_attempted: 0, tov: 2}
>   model: players.player
>   pk: 1
>
> But now I'm wondering what the error the API kicked was about...anyone
> know?
>
> thanks,
> Guillaume
>
> On Feb 17, 7:50 am, Bill Freeman <ke1g...@gmail.com> wrote:
>
>
>
>
>
>
>
> > The database user and *nix user are (typically) unrelated.  The
> > database user is specified in settings.py and there is also a password
> > if necessary.  Since one usually communicates with database servers
> > using network connections (even on the same box), it doesn't really
> > know what user a connection came from.
>
> > Unless you are using sqlite3 as your database, in which case you just
> > need to copy and change the ownership of the database file (may
> > require sudo).
>
> > On 2/16/12, Gchorn <guillaumech...@gmail.com> wrote:
>
> > > Thanks very much for the reply.  I went ahead and created a model
> > > instance using the API, and then tried to get a yaml dump of this.
> > > However, I'm running into another (newb) problem.  The database I'm
> > > using is under a different username (I'm doing all of this in Ubuntu
> > > Linux 11.10), which I understood to be good practice.  However, when I
> > > do a python manage.py shell I have to already be in one user name or
> > > another.  The database username gives me access to the database
> > > through the API, but then I can't create a data dump file because I
> > > don't have file write access under that username.  I can't be under
> > > both usernames at once can I?  Do I just need to give write-access to
> > > the database username as well?  If so how do I do that (I know we're
> > > veering away from Django here, sorry)?
>
> > > On Feb 17, 1:13 am, Bill Freeman <ke1g...@gmail.com> wrote:
> > >> Well, I don't know yaml, but if you are in a place where you don't
> > >> have to quote:
>
> > >>    Arron
>
> > >> then I'd expect everything to be strings.
>
> > >> Is there a yaml.dump that you can apply to a model with strings and
> > >> integers to see how it thinks they are distinguished?
>
> > >> On 2/16/12, Gchorn <guillaumech...@gmail.com> wrote:
>
> > >> > Hello All,
>
> > >> > I'm attempting to provide initial data for my database using a fixture
> > >> > file (like this:
> > >> >https://docs.djangoproject.com/en/1.3/howto/initial-data/#providing-i...),
> > >> > but I'm running into the following error:
>
> > >> > Problem installing fixture '/home/guillaume/NBA/players/fixtures/
> > >> > player_data.yaml': Traceback (most recent call last):
> > >> >   File "/usr/local/lib/python2.7/dist-packages/django/core/management/
> > >> > commands/loaddata.py", line 169, in handle
> > >> >     for obj in objects:
> > >> >   File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
> > >> > pyyaml.py", line 54, in Deserializer
> > >> >     for obj in PythonDeserializer(yaml.load(stream), **options):
> > >> >   File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/
> > >> > python.py", line 122, in Deserializer
> > >> >     data[field.attname] =
> > >> > field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value)
> > >> >   File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/
> > >> > __init__.py", line 471, in to_python
> > >> >     raise exceptions.ValidationError(self.error_messages['invalid'])
> > >> > ValidationError: [u'This value must be an integer.']
>
> > >> > Here is a sample from the YAML fixture file I'm attempting to use:
>
> > >> > - model: players.player
> > >> >   pk: 2
> > >> >   fields:
> > >> >     team: DEN
> > >> >     first_name: Arron
> > >> >     last_name: Afflalo
> > >> >     age: 26
> > >> >     pos:  SG
> > >> >     gp: 25
> > >> >     mp: 754
> > >> >     fg: 98
> > >> >     fga: 227
> > >> >     ft: 62
> > >> >     fta: 78
> > >> >     three_pointers: 31
> > >> >     threes_attempted: 81
> > >> >     orb: 15
> > >> >     drb: 51
> > >> >     ast: 39
> > >> >     stl: 15
> > >> >     blk: 6
> > >> >     tov: 33
> > >> >     pf: 55
> > >> >     pts: 289
>
> > >> > Isn't what I have there mostly integers?  I've already checked my
> > >> > models.py file to make sure I didn't accidentally use an
> > >> > "IntegerField" for "team", "first_name", "last_name", or "pos."  Do I
> > >> > need to include some other kind of formatting information in my YAML
> > >> > file to indicate that the numbers are integers?
>
> > >> > thanks,
> > >> > Guillaume
>
> > >> > --
> > >> > 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.
>
> > > --
> > > 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.

-- 
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