Thanks so much for the help! I deleted the database, made the changes
you suggested and ran syncdb again. I have two lingering issues.

1) At the django admin interface, I still only see a place to enter
data for 'Artist', and none of the tables that follow it in models.py
appear (the updated version appears below).

2) I was able to enter data into all the fields of 'Artist' table
without a problem--except for the image field.
SuspiciousOperation at /admin/archive/artist/1/
Attempted access to '/tmp/statement/headshot.jpg' denied.

Request Method:         POST
Request URL:    http://127.0.0.1:8000/admin/archive/artist/1/
Exception Type:         SuspiciousOperation
Exception Value:        Attempted access to '/tmp/statement/headshot.jpg'
denied.

I think I remember reading that it could have something to do with a
missing (or present, in this case) '/' before the upload_to argument.
I will look into that.from django.db import models

class Artist(models.Model):
    salutation = models.CharField(max_length=10, blank=True)
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=40)
    address = models.CharField(max_length=30, blank=True)
    city = models.CharField(max_length=60, blank=True)
    country = models.CharField(max_length=50, blank=True)
    phone = models.CharField(max_length=13, blank=True)
    email = models.EmailField(blank=True)
    website = models.URLField(blank=True)
    headshot = models.ImageField(upload_to='/tmp/statement',
blank=True)
    statement = models.TextField(blank=True)

    def __unicode__(self):
        return u'%s %s' % (self.first_name, self.last_name)

class Gallery(models.Model):
    name = models.CharField(max_length=40)
    address = models.CharField(max_length=30, blank=True)
    city = models.CharField(max_length=60, blank=True)
    country = models.CharField(max_length=50, blank=True)
    phone = models.CharField(max_length=13, blank=True)
    email = models.EmailField(blank=True)
    website = models.URLField(blank=True)

    def __unicode__(self):
        return u'%s' % (self.name)

class Images(models.Model):
    artist = models.ForeignKey(Artist)
    gallery = models.ForeignKey(Gallery, blank=True)
    file = models.ImageField(upload_to='/tmp/images')
    title = models.CharField(max_length=50)
    date = models.DateField()

    def __unicode__(self):
        return u'%s %s' % (self.title, self.date)

class Videos(models.Model):
    artist = models.ForeignKey(Artist)
    gallery = models.ForeignKey(Gallery, blank=True)
    file = models.FileField(upload_to='/tmp/videos')
    title = models.CharField(max_length=50)
    date = models.DateField()

    def __unicode__(self):
        return u'%s %s' % (self.title, self.date)

class Sale_Item(models.Model):
    artist = models.ForeignKey(Artist)
    images = models.ManyToManyField(Images, blank=True)
    videos = models.ManyToManyField(Videos, blank=True)
    price = models.CharField(max_length=10)

    def __unicode__(self):
        return u'%s' % (self.price)

class On_Loan(models.Model):
    artist = models.ForeignKey(Artist)
    images = models.ManyToManyField(Images, blank=True)
    videos = models.ManyToManyField(Videos, blank=True)
    location = models.ForeignKey(Gallery)
    expiry = models.DateField()

    def __unicode__(self):
        return u'%s %s' % (self.location, self.expiry)








On Dec 9, 10:31 am, Daniel Roseman <[EMAIL PROTECTED]>
wrote:
> On Dec 9, 5:02 am,djan<[EMAIL PROTECTED]> wrote:
>
>
>
> > Hello,
>
> > I'm running OpenSuSE-11.0 with the lastest version of django and
> > sqlite3.
> > When I enter the admin interface to enter data into my database, I got
> > the error:
>
> > OperationalError at /admin/archive/artist/add/
>
> > table archive_artist has no column named salutation
>
> > Request Method:         POST
> > Request URL:    http://127.0.0.1:8000/admin/archive/artist/add/
> > Exception Type:         OperationalError
> > Exception Value:        table archive_artist has no column named salutation
>
> > This error is for the first field of the first table, so I suspect
> > there is a deeper issue. Perhaps related to this, when I enter the
> > admin interface, I only see a way to enter records for "Artist", and
> > not any of the other tables I described below (i.e. "Images",
> > "Gallery", "On_Loan"). I'm new to database design; perhaps the
> > relations are off? My models.py looks as follows. Thanks in advance
> > for any help or suggestions.
>
> > class Artist(models.Model):
> >     salutation = models.CharField(max_length=10, blank=True)
> >     first_name = models.CharField(max_length=30)
> >     last_name = models.CharField(max_length=40)
> >     headshot = models.ImageField(upload_to='/tmp/statement',
> > blank=True)
> >     statement = models.TextField(blank=True)
>
> >     def __unicode__(self):
> >         return u'%s %s' % (self.first_name, self.last_name)
>
> > class Images(models.Model):
> >     artist = models.ForeignKey(Artist)
> >     file = models.ImageField(upload_to='/tmp/images')
> >     title = models.CharField(max_length=50)
> >     date = models.DateField()
>
> >     def __unicode__(self):
> >         return u'%s %s' % (self.title, self.date)
>
> > class Gallery(models.Model):
> >     images = models.ForeignKey(Images, blank=True)
> >     videos = models.ForeignKey(Videos, blank=True)
> >     name = models.CharField(max_length=40)
> >     address = models.CharField(max_length=30, blank=True)
> >     city = models.CharField(max_length=60, blank=True)
> >     country = models.CharField(max_length=50, blank=True)
> >     phone = models.CharField(max_length=13, blank=True)
> >     email = models.EmailField(blank=True)
> >     website = models.URLField(blank=True)
>
> >     def __unicode__(self):
> >         return u'%s' % (self.name)
>
> > class On_Loan(models.Model):
> >     artist = models.ForeignKey(Artist)
> >     images = models.ManyToManyField(Images, blank=True)
> >     videos = models.ManyToManyField(Videos, blank=True)
> >     location = models.ForeignKey(Gallery)
> >     expiry = models.DateField()
>
> >     def __unicode__(self):
> >         return u'%s %s' % (self.location, self.expiry)
>
> The problem isn't with your model structure (although there is one
> issue there, see below), but with your database tables. Most probably,
> you set up your database and ran manage.py syncdb, then made some
> changes to your models afterwards. Django does *not* change existing
> database tables when you edit the models - you need to do this
> yourself, usually via SQL. Since you're running sqlite and you haven't
> added any data yet, the easiest thing to do is delete your database
> file and run syncdb again.
>
> Your second problem, the lack of links to edit other tables, depends
> on your admin.py file which you haven't posted. You just need to
> remember to register in the admin every model you want to edit there.
> If you're still having problems there, post your admin.py and we'll
> try to help.
>
> Finally, your model layout itself. It looks good except for one issue
> - the relationship between Gallery and Images. You have a Foreign Key
> from Gallery to Images, which means that each gallery has only one
> image, and each image can belong to multiple galleries. I suspect you
> didn't mean that... most likely you want this to be the other way
> round, with the ForeignKey field on Images pointing to Gallery (and
> the same for Videos, which you haven't posted).
>
> --
> DR.
--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to