Я пытался реализовать hashids в моделях django. Я хочу приобрести hashid на основе модели id
, например, при модели id=3
, тогда хэш-кодировка должна быть такой: hashid.encode(id)
. Дело в том, что я не могу получить id или pk, пока не сохраню их. То, что у меня на уме, - это получить последние объекты id
и добавить 1
на них. Но это не решение для меня. Может ли кто-нибудь помочь мне разобраться?Внесите hashid в django
Джанго модель:
from hashids import Hashids
hashids = Hashids(salt='thismysalt', min_length=4)
class Article(models.Model):
title = models.CharField(...)
text = models.TextField(...)
hashid = models.CharField(...)
# i know that this is not a good solution. This is meant to be more clear understanding.
def save(self, *args, **kwargs):
super(Article, self).save(*args, **kwargs)
self.hashid = hashids.encode(self.id)
super(Article, self).save(*args, **kwargs)
этот не создает хешид после сохранения – Zorig
Вы создаете статьи через командную строку? Этот метод не запускает метод save() при создании экземпляра модели. – Hybrid
Нет, я создал статью через панель администратора. это потому, что измененная дата и дата создания не равны ??? – Zorig