Django inline formset одно и то же значение повторяется

Я хочу установить цель сотрудника для каждого продукта, он показывает все продукты, но только один продукт сохраняется каждый раз, я хочу, чтобы все продукты имели разные цели В моем Views.py

class targetcreate(CreateView):
    model = target
    form_class = targetform1
    success_url = '/'
    def get_context_data(self,** kwargs):
        context = super(targetcreate, self).get_context_data(**kwargs)
        context['formset'] = targetFormset(queryset=target.objects.none(), instance=product.objects.get(id=1),initial=[{'name': name} for name in self.get_initial()['name']])
        return context
    def get_initial(self):
        initial = super(targetcreate , self).get_initial()
        initial['name'] = product.objects.all()
        # initial['name'] = add_users.objects.all()
        return initial
    def post(self, request, *args, **kwargs):
        formset = targetFormset(request.POST,queryset=target.objects.none(), instance=product.objects.get(id=1), initial=[{'name': name} for name in self.get_initial()['name']])
        if formset.is_valid():
            return self.form_valid(formset,request)
        else:
            messages.warning(request,'error')
            return render(request,'add_target_emp1.html',{'formset':formset})
    def form_valid(self,formset,request):
        instances = formset.save(commit=False)
        for instance in instances:
            instance.date = request.POST.get('date')
            instance.name = emp.objects.get(id=3).user.username
            instance.save()
        return redirect('../../accounts/add_target_emp1')

в моем models.py это моя модель сотрудника, у меня есть продукт в другом приложении

class emp(models.Model):
    user=models.OneToOneField(User,null=True,on_delete=models.CASCADE)
    firstname=models.CharField(default='',max_length=100,null=False)
    lastname=models.CharField(default='',max_length=100,null=False)
    gender=(
        ('M','Male'),
        ('F','Female'),
        ('O','Others'),
        )
    gender=models.CharField(choices=gender, default='',max_length=10)
    dob=models.DateField(default=datetime.now)
    created_by=models.CharField(default='',max_length=100)
    phonenumber=models.TextField(default='',null=False,unique=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(default=timezone.now)
    branch=models.CharField(default='',max_length=100)
    position=models.CharField(default='',max_length=100)

class target(models.Model):
    conversion_target=models.BigIntegerField(null=True)
    total_target=models.BigIntegerField(null=True)
    name=models.CharField(default='',max_length=100)
    branch=models.CharField(default='',max_length=100)
    created_at = models.DateTimeField(auto_now_add=True)
    created_by=models.CharField(default='',max_length=100)
    month=models.CharField(default='',max_length=100)
    vehicle=models.ForeignKey(product,on_delete=models.CASCADE,null=True)
class product(models.Model):
    product_category=models.CharField(null=True,max_length=5000)
    product_category_id=models.CharField(null=True,max_length=5000)
    Value=models.DecimalField(default=0.00,max_digits=10,decimal_places=2)
    products=models.CharField(null=True,max_length=5000)

forms.py

class targetform1(ModelForm):
class Meta:
    model = target
    fields ='__all__'
    widgets = {'name' : HiddenInput}
    exclude=['created_at','created_by','completed_total_target','completed_conversion_target','completed_total_percentage','completed_conversion_percentage','branch']
def __init__(self,*args,**kwargs):
    super().__init__(*args,**kwargs)
    for field in self.fields:
        new_data={  
            
            'class':'form-control',
            'rows':1,
            'required':'True',
        }
        self.fields[str(field)].widget.attrs.update(
            new_data
        )   
var=product.objects.all().count()
targetFormset = inlineformset_factory(product,target,form=targetform1,fields=('name','vehicle','conversion_target','total_target'),extra=var) 

Это моя форма ввода pdt1 только сохранение каждый раз, я хочу, чтобы все продукты были вырезаны и сохранены

enter image description here

Вернуться на верх