私はhashidsをdjangoモデルで実装しようとしています。モデルのid
に基づいてhashidを取得したい場合は、モデルのid=3
と同じように、ハッシュエンコーディングはhashid.encode(id)
のようにする必要があります。事は私がそれらを救うまで私はIDかpkを得ることができない。私が気にしているのは、最新のオブジェクトid
を入手し、1
を追加することです。しかし、それは私のための解決策ではありません。誰かが私はそれを把握するのに役立つことができますか?djangoで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)
保存後にhashidが作成されない – Zorig
コマンドラインで記事を作成していますか?このメソッドは、モデルインスタンスを作成するときに 'save()'メソッドを実行しません。 – Hybrid
いいえ、管理パネルから記事を作成しました。変更された日付と作成された日付が等しくないためですか? – Zorig