• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Вывод только нужных полей в списке админки Django

LuckyNOOB

Green Team
28.03.2018
51
3
BIT
1
Добрый день, делаю достаточно большой сайт и у меня появился вопрос, как сделать чтобы при добавлении (в нашем случае) кузова автомобиля, выдавались лишь те модели, которые соответствуют марке Honda
1612611459598.png

На скрине видно, что выдаются также модели от BMW

Ниже содержимое models.py
Python:
class Car(models.Model):
    name = models.CharField('Наименование', max_length=48)
    show_point = models.BooleanField('Отображать', default=True)
    pic = models.CharField("Изображение", max_length=256)

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = 'Автомобиль'
        verbose_name_plural = 'Автомобили'


class Model(models.Model):
    model = models.ForeignKey(Car, verbose_name="Наименование", on_delete=models.CASCADE)
    model_name = models.CharField('Модель', max_length=150)
    show_point = models.BooleanField('Отображать', default=True)
    pic = models.CharField("Изображение", max_length=256)

    def __str__(self):
        return self.model_name

    class Meta:
        verbose_name = 'Модель'
        verbose_name_plural = 'Модели'


class Body(models.Model):
    model = models.ForeignKey(Car, verbose_name="Наименование", on_delete=models.CASCADE)
    model_name = models.ForeignKey(Model, verbose_name="Модель", on_delete=models.CASCADE)
    body_name = models.CharField("Кузов", max_length=150)
    show_point = models.BooleanField('Отображать', default=True)
    pic = models.CharField("Изображение", max_length=256)

    def __str__(self):
        return self.body_name

    class Meta:
        verbose_name = 'Кузов'
        verbose_name_plural = 'Кузова'


class Detail(models.Model):
    model = models.ForeignKey(Car, verbose_name="Наименование", on_delete=models.CASCADE)
    model_name = models.ForeignKey(Model, verbose_name="Модель", on_delete=models.CASCADE)
    body = models.ManyToManyField(Body, verbose_name="Кузов")
    detail_name = models.CharField("Наименование товара", max_length=256)
    vendor_code = models.IntegerField("Артикул", default=0, unique=True)
    pic = models.CharField("Изображение", max_length=256)
    cout = models.PositiveIntegerField("Количество", default=0)
    price = models.PositiveIntegerField("Цена", default=0)

    def __str__(self):
        return self.detail_name

    class Meta:
        verbose_name = 'Деталь'
        verbose_name_plural = 'Детали'
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!