Gibt es eine Möglichkeit, den ID-Wert neuer Django-Objekte auf einen bestimmten Wert zu setzen?

8

Gibt es eine Möglichkeit, den Zähler der ID-Werte für Objekte in Django zu setzen?

Zum Beispiel habe ich eine Reihe von Objekten 'Video', die derzeit bei id = 100 sind, das nächste Mal, wenn ich ein Objekt vom Typ 'Video' erstelle, wird es id = 101 sein. Ich möchte jedoch, dass alle neu erstellten Video-Objekte mit id = 2000 beginnen. Gibt es eine Möglichkeit, dies zu tun?

    
9-bits 08.12.2011, 14:08
quelle

2 Antworten

3

Sie können ein Fixture erstellen, das in Ihrer Datenbank eine Dummy-Zeile mit ID = 1999 erstellt. Die nächste automatisch generierte ID wäre 2000.

Diese Lösung hängt wahrscheinlich von Ihrem Datenbank-Backend ab, um dort fortzufahren, wo Sie aufgehört haben. Das tun zumindest MySql und PostgreSQL (ich denke, jedes Backend macht das).

Es gibt auch nur eine Lösung für MySql (soweit ich weiß), die aus einer SQL-Anweisung ALTER TABLE tbl AUTO_INCREMENT = 100;

besteht

Das wäre aber nicht mehr datenbankunabhängig.

    
Density 21.5 11.12.2011, 20:09
quelle
9

Sie können die ID beim Erstellen des Objekts angeben, solange Sie dies vor dem Speichern tun:

%Vor%

Sie könnten einfach die ID berechnen, die Sie jedes Mal wollten - obwohl ich nicht sicher bin, was mit den Auto-ID-Feldern von Django nicht stimmt;)

    
Ben 08.12.2011 15:23
quelle

Tags und Links