P
Pisych27 января 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. Буду признателен за пример кода:)

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

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

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

      Комментарии

      Только авторизованные пользователи могут публиковать комментарии.
      Пожалуйста, авторизуйтесь или зарегистрируйтесь
      ДЛ

      C++ - Тест 004. Указатели, Массивы и Циклы

      • Результат:60баллов,
      • Очки рейтинга-1
      СЦ

      C++ - Тест 004. Указатели, Массивы и Циклы

      • Результат:50баллов,
      • Очки рейтинга-4
      AT

      C++ - Тест 001. Первая программа и типы данных

      • Результат:73баллов,
      • Очки рейтинга1
      Последние комментарии
      J
      JonnyJo30 марта 2023 г. 21:57
      Qt/C++ - Урок 021. Рисование мышью в Qt Евгений, здравствуйте! Только начал изучение Qt и возник вопрос по 21ому уроку. После написания кода, выдаёт следующие ошибки В чём может быть проблема?
      АН
      Алексей Николаев26 марта 2023 г. 19:10
      Qt/C++ - Урок 042. PopUp уведомление в стиле Gnome с помощью Qt Добрый день, взял за основу ваш PopUp notification , и немного доработал его под свои нужды. Добавил в отдельном eventloop'e всплывающую очередь уведомлений с анимацией и таймеро…
      АН
      Алексей Николаев26 марта 2023 г. 19:04
      Qt/C++ - Урок 042. PopUp уведомление в стиле Gnome с помощью Qt Включите прозрачность в композит менеджере fly-admin-theme : fly-admin-theme ->Эффекты и всё заработает.
      Evgenii Legotckoi
      Evgenii Legotckoi24 марта 2023 г. 20:09
      Django - Урок 062. Как написать блочный шаблонный тег tabbar наподобие тега blocktranslate Почитайте эту статью про "хлебные крошки"
      Сейчас обсуждают на форуме
      BlinCT
      BlinCT1 апреля 2023 г. 15:16
      Нужен совет по работе с ListView и несколькими моделями Спасибо, сейчас займусь этим.
      NSProject
      NSProject31 марта 2023 г. 12:55
      Проверка комментария принадлежит он пользователю или нет DRF (Django Rest Framework) Здравствуйте! Сегодня я столкнулся с такой проблеммой. Существует модель комметариев. Где их соответственно достаточное количество. Все они выводятся при помощи запроса ajax (axios). Так ка…
      P
      Pisych30 марта 2023 г. 12:50
      Как подсчитать количество по условию? Да! Вот так работает! Огромное Вам спасибо! ........
      Evgenii Legotckoi
      Evgenii Legotckoi29 марта 2023 г. 14:11
      Замена поля ManyToMany Картинки точно нужно хранить в медиа директории на сервере, а для обращения использовать ImageField. Который будет хранить только путь к изображению на сервере. Хранить изображения в базе данных…
      ВА
      Виталий Анисимов30 января 2023 г. 2:17
      Как добавить виртуальную клавиатура с Т9 в своей проект на QML. Добрый день. Прошу помочь, пишу небольше приложение в Qt. Добвил в свой проект виртуальную клавиатуру от Qt. Но как добавить в него возможность изменения Т9 никак не могу понять.

      Следите за нами в социальных сетях