У меня есть django модель:
class MyModel(models.Model):
my_field = models.CharField(max_length=500, unique=True)
...
Как видите, "my_field" должно быть уникальным. Перед созданием нового объекта я запускаю
field_value: str = 'test 12/9'
try:
o = MyModel.objects.get(my_field=field_value)
except MyModel.DoesNotExist:
o = MyModel()
...
, чтобы проверить, существует ли объект с уникальным field_value
. Все идет нормально. Теперь я понял, что у меня есть сотня «дублирующих» значений в my_field
.
Вот точные скопированные значения из django admin:
2 StR 46/15
2 StR 46/15
Как видите, они кажутся одинаковыми. Но если я скопирую одно значение в другое поле в django admin и попытаюсь сохранить его, произойдет сбой из-за объекта, уже существующего с этим 'my_field'. Но при сохранении каждого объекта он не перестает работать.
Я использовал несколько инструментов для сравнения строк, я не смог найти разницу.
Есть ли способ, который django или postgres конвертирует эти строки где-то, чтобы они больше не были одинаковыми? Я что-то пропустил?
Спасибо за любую помощь!
ОБНОВЛЕНИЕ:
Я только что проверил двоичное представление своих строк, и кажется, пробелы декодируются по-разному.
Для 1-го пробела: "10100000
"
Для 2-го пробела: "100000
"