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

  • 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

LuckyNOOB

Green Team
28.03.2018
50
3
Добрый день, делаю достаточно большой сайт и у меня появился вопрос, как сделать чтобы при добавлении (в нашем случае) кузова автомобиля, выдавались лишь те модели, которые соответствуют марке 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 = 'Детали'
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab