Python Django:如何获得多个输入?

Python Django:如何获得多个输入?,python,django,Python,Django,我在气缸管理系统的工作,我想给功能,用户可以发布多个气缸。 我想让用户得到一个可用圆柱体的列表,在那里他可以选择圆柱体项目并提交表单 我能处理单缸的问题,以下是我申请单缸的内容:- 型号:- class Cylinder(models.Model): stachoice=[ ('Fill','fill'), ('Empty','empty') ] substachoice=[ ('Available','available'), ('U

我在气缸管理系统的工作,我想给功能,用户可以发布多个气缸。 我想让用户得到一个可用圆柱体的列表,在那里他可以选择圆柱体项目并提交表单

我能处理单缸的问题,以下是我申请单缸的内容:-

型号:-

class Cylinder(models.Model):
    stachoice=[
    ('Fill','fill'),
    ('Empty','empty') 
    ]
    substachoice=[
    ('Available','available'), 
    ('Unavailable','unavailable'),
    ('Issued','issued') 
    
    ]
    cylinderId=models.CharField(max_length=50,primary_key=True,null=False)
    gasName=models.CharField(max_length=200)
    cylinderSize=models.CharField(max_length=30)
    Status=models.CharField(max_length=40,choices=stachoice,default='fill')
    Availability=models.CharField(max_length=40,choices=substachoice,default="Available")
    EntryDate=models.DateTimeField(default=timezone.now)
    issue_Date=models.DateTimeField(null=True)
    issue_user=models.CharField(max_length=70,null=True)
    return_Date=models.DateTimeField(null=True)
    

    def get_absolute_url(self):
        return reverse('cylinderDetail',args=[(self.cylinderId)])

    def __str__(self):
        return str(self.cylinderId)

class Issue(models.Model):
    cylinder=models.ForeignKey('Cylinder',on_delete=models.CASCADE)
    userName=models.CharField(max_length=60,null=False)
    issueDate=models.DateTimeField(default=timezone.now)
    
    def save(self,*args,**kwargs):
        if not self.pk: 
            if self.cylinder.Availability=='Available':
                Cylinder.objects.filter(cylinderId=self.cylinder.cylinderId).update(Availability=('Issued'))
                Cylinder.objects.filter(cylinderId=self.cylinder.cylinderId).update(issue_Date=self.issueDate)
                Cylinder.objects.filter(cylinderId=self.cylinder.cylinderId).update(issue_user=self.userName)
        super().save(*args,**kwargs)
        
    def __str__(self):
        
        return str(self.userName) 


class Return(models.Model):
    fill=[
    ('Fill','fill'),
    ('Empty','empty'),
    ('refill','Refill')
    ]

    ava=[
    ('yes','YES'),
    ('no','NO')
    ]
    cylinder=models.ForeignKey('Cylinder',on_delete=models.CASCADE)
    availability=models.CharField(max_length=20,choices=ava)
    status=models.CharField(max_length=10,choices=fill)
    returnDate=models.DateTimeField(default=timezone.now)
    def save(self,*args,**kwargs):
        if not self.pk:

            if self.cylinder.Availability=='Issued':
                Cylinder.objects.filter(cylinderId=self.cylinder.cylinderId).update(return_Date=self.returnDate)
                if self.availability=='YES' or self.availability=='yes':
                    Cylinder.objects.filter(cylinderId=self.cylinder.cylinderId).update(Availability='Available')
                    if self.status=='empty' or self.status=='Empty':
                        Cylinder.objects.filter(cylinderId=self.cylinder.cylinderId).update(Status='Empty')
                else:
                    Cylinder.objects.filter(cylinderId=self.cylinder.cylinderId).update(Availability='Unavailable')
                    if self.status=='refill' or self.status=='Refill':
                        Cylinder.objects.filter(cylinderId=self.cylinder.cylinderId).update(Status='Refill')
                    if self.status=='empty' or self.status=='Empty':
                        Cylinder.objects.filter(cylinderId=self.cylinder.cylinderId).update(Status='Empty')


        super().save(*args,**kwargs)

    def __str__(self):
        return str(self.cylinder)
观点:-

@login_required
def issue(request):
    if not request.user.is_superuser:
        return redirect('index')
    
    form=IssueForm()
    if request.method=='POST':
        form=IssueForm(data=request.POST,files=request.FILES)

        if form.is_valid():
            form.save()
            return redirect(cylinderListView)
            
    return render(request,'entry/cylinder_form.html',{'form':form})
表单模板:-

<div class='col-lg-12' id="divForm">
  
  <br>
  
    <div class="form-group " id="form1">
        <h3>New Entry</h3>
        <form method="post"  >
            {% csrf_token %}
            {{ form.as_p }}
            <input class="btn btn-success " type="submit" value="Submit"/>
        </form>

    </div>

</div>


新条目 {%csrf_令牌%} {{form.as_p}}

我无法为多个圆柱体问题编写代码。

cylinder.objects.filter(cylinderId=self.cylinder.cylinderId)。update(Availability=('Issued'))为什么要对多个圆柱体问题执行此操作?请将数据存储在问题模型中。如果您不这样做,那么问题模型有什么用,或者我不理解您的问题。请查看formsets:@sumitsubedi这是我为单缸所做的,我只想在发布气瓶时更改气瓶表中的可用性,如果您提出任何其他好的方法,我将非常感谢。因此,您告诉我,即使在气瓶发出后,您也希望更改气瓶表上的可用性,但气瓶可以由多个用户发出。对不起,我没有收到您的通知。我只是希望在发布表单中,用户可以获得多个圆柱体id输入,这样在一个表单中提交他/她就可以向一个用户发布多个圆柱体id。当它发出所有气缸时,它将更新要发出的所有选定气缸Id的可用状态。