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 р. 01: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 р. 14:04

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

      Коментарі

      Only authorized users can post comments.
      Please, Log in or Sign up