@Yzurgzd

Как реализовать Filter в models.ForeignKey Django?

models
class Product(models.Model):
    name = models.CharField('Наименование', max_length=100)
    poster = models.ImageField('Постер', upload_to='products/posters/')
    description = models.TextField('Описание')
    category = models.ForeignKey(
        Category, verbose_name='Категория', on_delete=models.SET_NULL, null=True)
    price = models.PositiveIntegerField(
        'Цена', default=0, help_text='Указывать сумму в рублях')
    hide = models.BooleanField('Скрыть', default=False)
    slug = models.SlugField(max_length=160, unique=True)

class TypeSpecification(models.Model):
    category = models.ForeignKey(
        Category, verbose_name='Категория', null=True, on_delete=models.SET_NULL)
    name = models.CharField('Наименование', max_length=255)

class ProductSpecification(models.Model):
    product = models.ForeignKey(
        Product, verbose_name='Товар', on_delete=models.CASCADE)
    type_specification = models.ForeignKey(
        TypeSpecification, verbose_name='Тип характеристик', on_delete=models.CASCADE, limit_choices_to={'category': self.product.category})
    value = models.CharField('Значение', max_length=255)


Нужно в модели 'ProductSpecification', в поле ForeignKey 'type_specification' выводить данные (из модели 'TypeSpecification'), только если Категория в 'TypeSpecification' совпадает с Категорией в Product. Как лучше это реализовать?
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
@bacon
В модели никак, только уже в форме фильтровать, и то если заранее известно значение product. Если product в рилтайме выбирается, то тут уже ajax и прочие радости, самая известная библиотека для помощи django-select2
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы