Kann ich ein Modell in Django ohne automatische ID erstellen?

8

Ich brauche eine Tabelle ohne Primärschlüssel (in Django wurde sie automatisch erstellt). Meine Frage ist also: Kann ich ein Modell ohne ID / Primärschlüssel erstellen?

Ich benutze Django 1.7.

    
HQM 14.02.2015, 13:26
quelle

3 Antworten

19

Sie können ein Modell ohne automatisch inkrementierenden Schlüssel erstellen, aber Sie können > kein Element ohne Primärschlüssel erstellen.

Aus der Django-Dokumentation :

  

Wenn Django sieht, dass Sie % co_de explizit festgelegt haben % , wird die Spalte mit der automatischen ID nicht hinzugefügt.

     

Jedes Modell benötigt genau ein Feld, um Field.primary_key zu haben (entweder explizit deklariert oder automatisch hinzugefügt).

    
Selcuk 14.02.2015, 13:29
quelle
6

Nein, das kannst du nicht. Auszug aus der Dokumentation :

  

Jedes Modell benötigt genau ein Feld, um primary_key = True zu haben (entweder explizit deklariert oder automatisch hinzugefügt).

    
catavaran 14.02.2015 13:31
quelle
4

Ich habe die Lösung gefunden.

Da django Primärschlüssel benötigt (entweder zusammengesetzte oder Einzelfeld-ID), habe ich versucht, primary_key = True in allen Feldern in seiner zusammengesetzten Schlüsselkombination zu setzen und diese Felder in Meta und Gruppen in unique_together %Vor%

und wenn ich Makemigrationen ausführe, gibt es kein ID-Feld im Migrationsskript: D

Danke an alle

    
HQM 14.02.2015 13:49
quelle

Tags und Links