Найти - Пользователи
Полная версия: На одной админ форме 2 модели через onetoone
Начало » Django » На одной админ форме 2 модели через onetoone
1
Oduvan
Есть 2 модели, которые связаны друг с другом onetoone по средствам третьей модели. Как мне можно все эти 3 модели редактировать в одной админ форме, т.е. в админке на одной странице?
romankrv
Oduvan
Есть 2 модели, которые связаны друг с другом onetoone по средствам третьей модели. Как мне можно все эти 3 модели редактировать в одной админ форме, т.е. в админке на одной странице?
Смотри inline объекты в доке по админке в офф

http://docs.djangoproject.com/en/dev/ref/contrib/admin/#inlinemodeladmin-objects
Oduvan
romankrv
Смотри inline объекты в доке по админке в офф
Инлайн объекты могут только foreignkey или ManyToMany. а мне надо OneToOne

все решилось тривиально. Я просто переопеределил форму редактирования для админки и добавил ей полей из других связных моделей.
devalentino
Помогите реализовать.

Нужно редактировать Manufacturer c одной картинкой и Product с несколькими картинками.
Как настроить админку?

class Color(models.Model):
    title = models.CharField(max_length=30)
    code = models.CharField(max_length=7)
    def __unicode__(self):
        return '{0} ({1})'.format(self.title, self.code)
class Size(models.Model):
    title = models.CharField(max_length=20)
class Image(models.Model):
    color = models.ForeignKey(Color)
    src = models.ImageField(upload_to='media/img/')
    alt = models.CharField(max_length=255)
    '''
    object_id = models.PositiveIntegerField()
    content_type = models.ForeignKey(ContentType)
    of = generic.GenericForeignKey('content-type', 'object_id')
    '''
    def __unicode__(self):
        return '{0} ({1})'.format(self.alt, self.color.title)
class Manufacturer(models.Model):
    title = models.CharField(max_length=255)
    image = models.OneToOneField(Image, parent_link=True)
    def __unicode__(self):
        return self.title
class Product(models.Model):
    title = models.CharField(max_length=255)
    manufacturer = models.ForeignKey(Manufacturer)
    description = models.TextField()
    price = models.DecimalField(max_digits=8, decimal_places=2)
    image = models.ManyToManyField(Image)
    pub_date = models.DateTimeField('Date published')
    mod_date = models.DateTimeField('Date modified')
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB