записи в бд автоматическое добавление идентификатора на основе текущей даты + порядкового уникального номера?
через override save(), думаю
мне нужно получать и передавать этот идентификатор непосредственно в форму при вызове вьюхи. Если я в forms её передаю непосредственно как value у виджета, то сталкиваюсь с тем, что до создания первой миграции и заполнения нужно таблицы выдаёт исключение, что таблицы такой нет Views: 'number': forms.TextInput(attrs={ 'input_type': 'text', 'value': serial_number_transfer(), 'class': 'form-control', 'aria-required': 'true' }), utils: def serial_number_transfer(): date = datetime.now().strftime('%Y%m%d') print(date) if models.Transfer.objects.count() > 0 and models.Transfer.objects.all().last(): last_order = models.Transfer.objects.all().last() if last_order.number[0:8] == date: num = int(last_order.number[8::]) num += 1 print(last_order.number) print(num) else: num = 1 date = f'{date}{num}' else: date = f'{date}001' return date
что-то немножко запутанно :) уникальный порядковый новый - по идее, это же автоинкримент, id инстанса, правильно?
Не совсем, не инкремент id инстанса, а просто int поле
можно вообще ничего не писать в бд, кроме даты создания записи навесить только в модель @property def some_field(self): date_str = self.date_field.strftime('%Y%m%d') return f"{self.id}{date_str}"
Обсуждают сегодня