Задать вопрос
@Yzurgzd

Как объединить дубликаты в Django?

models
class Characteristics(models.Model):
    name = models.CharField('Наименование', max_length=50)
    slug = models.SlugField(max_length=160, unique=True)

class ProductCharacteristics(models.Model):
    product = models.ForeignKey(
        Product, verbose_name='Товар', on_delete=models.CASCADE)
    characteristic = models.ForeignKey(
        Characteristics, verbose_name='Характеристика', on_delete=models.CASCADE)
    value = models.CharField('Значение', max_length=50)


views
def get_characteristics(self):
        return ProductCharacteristics.objects.all()


шаблон
{% for characteristic in view.get_characteristics  %}
          <div class="border-bottom pb-4 mb-4">
            <h4>{{ characteristic.characteristic.name }}</h4>
            <!-- Checkboxes -->
            <div
              class="form-group d-flex align-items-center justify-content-between font-size-1 text-lh-lg text-body mb-1">
              <div class="custom-control custom-checkbox">
                <input type="checkbox" class="custom-control-input" id="genderMen">
                <label class="custom-control-label text-lh-lg" for="genderMen">{{ characteristic.value }}</label>
              </div>
              <small>73</small>
            </div>
            <!-- End Checkboxes -->
          </div>
          {% endfor %}


Выводиться вот так
5fa2c583489bc010251131.png

Как определить если name в Characteristics однинаковое, то значение value записывалась под Бренд в данном случае. А если value одинаковые, то оно не должно повторяться?
  • Вопрос задан
  • 175 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
JRazor
@JRazor
Senior StarkOverFlow Programmer
Поле name - не уникально. Там может быть сколько угодно экземпляров. Объединить их - тот еще геморой, проще сразу забить туда unique=True

class Characteristics(models.Model):
    name = models.CharField('Наименование', max_length=50, unique=True)


Это во-первых.

Во-вторых - зачем получать эти значения из продукта? Надо вызывать Characteristics и вызывать по обратной связи. Если это список Characteristics - зачем вообще тогда выводить ProductCharacteristics. Скорее всего - два продукта, поэтому и проблема

И в третьих: имена моделей только в единственном числе
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы