Ich möchte einen zufälligen Slug für mein Modell generieren, aber ohne "blank = True" zu setzen (wie ich es später mit Validierung erzwingen möchte).
Ich habe mich gefragt, ob ich so etwas tun könnte:
%Vor%Wo ist some_method eine Methode, die einen zufälligen Slug erzeugt? Ich habe den obigen Code ausprobiert und es funktioniert nicht: (
Was ich tun möchte, ist ein eindeutiger Slug (unique_slugify?)
zu erzeugenSie können die Save-Methode der Modelle überschreiben, so dass bei der Erstellung einer neuen Entität der Slug im laufenden Betrieb generiert wird. Etwas wie:
%Vor%Sie könnten das tun, aber es ist nicht sehr gut und besser wäre es, wenn der Slug eine deterministische Slugified-Version des Objektnamens wäre.
Sie können dies verwenden, wenn Sie möchten, dass Ihr Slug automatisch mit dem Eintrag erzeugt wird, der in einem anderen Feld im selben Modell eingegeben wurde, in dem sich der Slug befindet.
%Vor%populate_from
ist das Feld im Modell, das automatisch den Slug kann die Modellvalidierung helfen? Ссылка
Sie können einfach den Wert validieren, der in ein Slug-Feld geschrieben werden soll, und wenn es bereits existiert, generieren Sie etwas Einzigartiges.
Auch das Überschreiben der Speichermethode könnte die Lösung sein.
Prost.
in Google suchen, fand ich ähnliche Frage: Wie Slug in Django zu verwenden
Ich denke, der bessere Ansatz besteht darin, die Speichermethode neu zu schreiben und das Feld in Form zu validieren.
Aber Slug sollte eindeutig sein, also generiere zufällige Strings nicht gut! Wie Tommaso Bardugi früh sagt, wenn Sie den Zeitstempel in URL hinzufügen, wird dies gelöst.
Tags und Links django django-models