P
Қаң. 27, 2023, 12:35 Т.Қ.

Как создать уникальное значение поля на основе существующих значений

Вот например:
class Tovar

class Tovar(models.Model):
    title=models.CharField('Наименование',max_length=150)
    price=models.FloatField()
    uniqfield= .....?

Вот абстрактный пример. Мне надо, чтобы в uniqfield сразу попадали значения при заполнении и обноновлении записей.
Например, "Товар1" цена 100.50, uniqfield="Товар1_100.50, "Товар1" цена 200, uniqfield="Товар1_200" Типа слага, только вычисляемый из двух полей:)
Можно ли так сделать на уровне модели? Спасибо.
p.s. Буду признателен за пример кода:)

2

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

2
NSProject
  • Қаң. 28, 2023, 1:31 Т.Ж.

В принципе это можно сделать так:

def unique_field(self):
    return '{0}_{1}'.format(self.title, self.price)

class Tovar(models.Model):
    title=models.CharField('Наименование',max_length=150)
    price=models.FloatField()
    uniqfield= models.CharField(default=unique_field, unique=True)

Вот только если попадётся два одинаковых товара то будет ошибка.

    P
    • Қаң. 28, 2023, 2:04 Т.Қ.

    ольшое спасибо!

      Пікірлер

      Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
      Кіріңіз немесе Тіркеліңіз