使用具有管理保存按钮的保存功能,使用django模型中的循环保存多个数据

时间:2017-07-25 04:14:21

标签: python django

我正在尝试从django admin中循环保存数据。当我按下它应该保存在数据库中使用相同的参数,除了一个字段,每行将有不同的值。

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)

我的具有save()函数的SimDetail类也包含一个ForeignKey

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)

目前它只保存最后一个数据,我认为(我可能错了)可能会一次又一次地被替换,所以最后它只存储最后一个值。

任何人都可以帮助我,我只是在不使用表单的情况下从管理员处使用它。

1 个答案:

答案 0 :(得分:0)

我需要做的只是将主键放到None中,这样每次都会保存一个新对象,我在link

中找到了答案