[Update: Changed Frage Titel um genauer zu sein]Wie man ein Auto-gefüllt und Feld mit automatischer Erhöhung in django Admin
Sorry, wenn ich die Frage nicht sehr gut gemacht habe, kann ich‘ t Figur, wie dies zu tun:
class WhatEver():
number = model.IntegerField('Just a Field', default=callablefunction)
...
Wo callablefunction
hat diese Abfrage:
from myproject.app.models import WhatEver
def callablefunction():
no = WhatEver.objects.count()
return no + 1
ich möchte automatisch die nächste Nummer schreiben, ein Und ich weiß nicht, wie ich es machen soll.
Ich habe Fehler von callablefunction
besagt, dass es das Modell nicht importieren kann, und ich denke, es muss eine einfachere Möglichkeit, dies zu tun. Es gibt keine Notwendigkeit, dies zu verwenden, aber ich kann mir nicht vorstellen, wie es mit der PK-Nummer gemacht wird.
Ich habe über diese gegoogelt und das einzige, was ich war, die save() Methode für die automatische Erhöhen der Anzahl verwenden gefunden ... aber ich wollte es in der <textfield>
vor dem Speichern zeigen ...
Was würden Sie tun?
Sind Sie sicher, dass dieser Code auch mit gleichzeitigen Transaktionen funktioniert? Was passiert, wenn zwei Anfragen gleichzeitig "count()" ausführen und später denselben Wert schreiben? – vdboor
Das ist wahr ... in meinem Anwendungsfall spielt es keine Rolle, weil es nie zwei Anfragen gleichzeitig geben wird ... aber selbst dann muss ich einen besseren Weg finden, dies zu implementieren. Danke für den Hinweis! :) –
Ich war in der Lage, etwas ähnliches zu tun, was ich dieses Feld machen möchte: 'id = models.IntegerField (primary_key = True, leer = True)' Das einzige Ding ist, dass es nicht automatisch gefüllt wird, aber das Problem löst von simultanen Anfragen (glaube ich) –