2017-07-25 6 views
0

Ich versuche, Daten in Schleifen von Django Admin zu speichern. Wenn ich drücke, sollte es in der Datenbank mit demselben Argument gespeichert werden, außer einem Feld, das in jeder Zeile einen anderen Wert hat.Speichern Sie mehrere Daten mit Loops in Django-Modelle mit Speichern-Funktion mit Admin-Speichern-Taste

class DealersList(models.Model): 
    dealers_company = models.CharField(unique=True,max_length=100) 
    concern_district = models.CharField(max_length=25, choices=CITY_CHOICES, default=False) 
    address = models.CharField(max_length=50) 
    vdc = models.CharField(max_length=30) 
    contact_person = models.CharField(max_length=50,blank=True) 
    phone_number = models.CharField(max_length=14,blank=True) 
    email = models.EmailField(max_length=70,blank=True, null= True, unique= True) 

Und meine SimDetail Klasse, die save() Funktion wird über ein ForeignKey zu

class SimDetail(models.Model): 
    mobile_no = models.BigIntegerField("Mobile Number",unique=True) 
    number_of_sim = models.IntegerField() 
    agent = models.ForeignKey('DealersList',on_delete=models.CASCADE,to_field='dealers_company') 
    sim_activation_date = models.DateField(auto_now=False, auto_now_add=False) 
    submission_date = models.DateField(auto_now=False, auto_now_add=False) 
    remarks = models.TextField(null=True,blank=True,validators=[MaxLengthValidator(200)]) 

    def save(self,*args, **kwargs): 
     ite=0 
     for x in xrange(0,self.number_of_sim): 
      self.mobile_no=self.mobile_no+ite 
      ite=1 
     super(SimDetail, self).save(*args, **kwargs) 

es derzeit nur letzte Daten zu speichern, die ich denke, dass (i falsch sein kann) könnte immer wieder ersetzt werden Letztendlich speichert es nur den letzten Wert.

Kann mir jemand helfen, ich versuche es von Admin nur ohne Formulare zu verwenden.

+0

Ich fand nur, dass einige Sekunden, bevor Sie, geschrieben hätte viel Hilfe, wenn ich das früher bekommen hätte. Danke @smarber – ashim888

+0

Du hast es gefunden, ich habe es nicht :). Ich habe deine Antwort gesehen, also habe ich sie als Duplikat gekennzeichnet, wenn es hauptsächlich die gleiche Frage ist wie deine, dann solltest du das gleiche tun ... – smarber

+0

ja die Antwort war auch auf mein Problem anwendbar und ich akzeptierte sein Duplikat plus die gegebene Antwort upvoted :) – ashim888

Antwort

0

Alles, was ich tun musste, war nur Primärschlüssel Keine setzen, so dass ein neues Objekt wird jedes Mal gespeichert werden, fand ich meine Antwort in diesem link

Verwandte Themen