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的可用状态。