изменить комбинированный список изображений на набор форм inputfile - PullRequest
0 голосов
/ 29 декабря 2011

У меня есть несколько моделей в моем приложении, у каждой будет набор изображений (n изображений), чтобы справиться с этим, я разработал следующие модели:

class Gallery(models.Model):
   HeadImage = models.ImageField(upload_to="gallery")

class Image(models.Model):
   Image = models.ImageField(upload_to="gallery")
   Gallery = models.ForeignKey(Gallery, related_name='images')

теперь у каждой модели естьn изображений будет иметь чужой ключ к галерее, например thie:

class Tour(models.Model):
   Category=models.ForeignKey(TourCategory)
   Name=models.CharField(max_length=100)
   Count=models.SmallIntegerField() 
   PriceUnit=models.ForeignKey(PriceUnit)
   Price=models.CharField(max_length=12)
   Description=models.TextField()
   Status_Choices=(
      ('a',ugettext_lazy('Activate')),
      ('d',ugettext_lazy('Deactivate')),
   )
   StatusType=models.CharField(max_length=1,choices=Status_Choices)
   Gallery = models.OneToOneField(Gallery,editable=False)
   CHOICES=(
      ('T',ugettext_lazy('yes')),
      ('F',ugettext_lazy('no')),
   )
   isSpecial=models.CharField(max_length=1,choices=CHOICES)

Когда я добавляю модель Tour в админ, у меня есть комбинированный список для поля галереи, этот комбинированный список не имеет смысла, например так: add tour in admin

Я не хочу использовать другие галереи, которые уже были добавлены, вместо этого я хочу иметь подобный набор форм: add tour form with formset

Здесь Head Image - это поле HeadImage вМодель Gallery и Image1,Image2,... - это модель inline Image set для Image. Как я могу справиться с этой ситуацией в админке? Я хочу опустить этот комбинированный список и заменить его на HeadImage и ImageSet.

спасибо заранее


, когда я меняю модель Tour на эту:

class Tour(Gallery):
    ...

У меня есть что-то вроде этого:

enter image description here

, в то время как мне нужно n изображений для каждого тура, так что Head Image является основным изображением, а дополнительные изображения (связанные с моделью изображения) являются необязательными, и ядумая, как привести форму набора изображений в Head Image Field в Add Tour Form.У тебя есть какое-нибудь решение?

1 Ответ

1 голос
/ 29 декабря 2011

Если указанная вами форма является точной, «Тур» не содержит галерею, реализует галерею. Следовательно, вам, вероятно, повезет больше, если использовать Django multi-table Наследование . Попробуйте что-то вроде следующего:

class Gallery(models.Model):
    head_image = models.ImageField(upload_to="gallery")

class Image(models.Model):
    image = models.ImageField(upload_to="gallery")
    gallery = models.ForeignKey(Gallery, related_name='images')

class Tour(Gallery):
    ...

И ради любви ко всему святому, прочитайте Руководство по стилю Python . Имена методов должны быть в нижнем регистре с подчеркиванием, чтобы избежать столкновений пространства имен с классами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...