2016-07-31 10 views
0

Ich habe das folgende Modell als Inline-Feld in einem anderen Modell:sparen Auto-Inkrementierung Zeilennummer in Inline-Feld Django

class route_ordering(models.Model): 
    route_id = models.ForeignKey(route, on_delete=models.CASCADE) 
    activity_id = models.ForeignKey(activity, on_delete=models.CASCADE) 
    day = models.IntegerField() 
    order = models.IntegerField() 

Und im admin.py:

class RouteAdmin(admin.ModelAdmin): 
    inlines = (RouteOrderingInline,) 

Ich mag würde um "Bestellung" von eins inkrementierend zu machen, wird es automatisch ausgefüllt, wenn ich zum Django-Admin-Panel gehe (in der ersten Zeile Reihenfolge = 1, dann Bestellung-2 usw.)

Ich weiß, dass Sie verwenden können Standard, um eine automatische Einstellung festzulegen d Wert, aber ich möchte es von selbst erhöhen.

Wie kann ich das tun?

Antwort

0

Ich kann nicht garantieren, dass dies funktioniert, und ich kann derzeit nicht testen, aber ich denke, dass Sie einen Generator auf Ihren Standardwert Arg übergeben können.

define increment(): 
    return range(1, 1000) 

Und wo Ihre Weitergabe nur in einem Standard next(increment())

Leider rufen kann ich ein detaillierteres Beispiel nicht zur Verfügung stellt, schreibe ich diese auf meinem Handy XD, aber ich denke, dass sollte funktionieren.

+0

Ich habe schon ein Autofield, das ist die ID. + Dieser Wert ist nicht für jede Zeile in der Tabelle eindeutig. Er sollte bei jedem Öffnen eines neuen Formulars mit 1 beginnen. – idik

+0

Interessant, und Sie brauchen das nur für den django admin? –

+0

Ja, denn das ist der einzige Ort, an dem ich diese Einfügungen bearbeite. – idik