在数据库中有类借用,其中包含将借用项目的employee_id、tag_id (项目)和subscriber_id
在我的代码中,如果员工请求借款,他可以选择subscriber_id。我需要将subscriber_id设置为1,甚至不要求员工进行选择。
在models.py文件中
class Borrowing(models.Model):
borrowing_id = models.IntegerField(null=True)
start_date = models.DateField(auto_now_add=True, null=True)
end_date = models.DateField(null=True)
employee_id = models.ForeignKey(Employee, null=True, on_delete= models.SET_NULL)
tag_id = models.ForeignKey(Tag, null=True, on_delete= models.SET_NULL)
subscriber_id = models.ManyToManyField(Subscriber)
def __str__(self):
return str(self.borrowing_id)在forms.py文件中
class BorrowingForm(ModelForm):
class Meta:
model = Borrowing
fields = ['end_date', 'employee_id', 'tag_id', 'subscriber_id']在views.py中
def createBorrowing(request, pk):
BorrowingFormSet = inlineformset_factory(Employee, Borrowing, fields=('end_date','tag_id','subscriber_id'))
employee = Employee.objects.get(id=pk)
formset = BorrowingFormSet(queryset=Borrowing.objects.none(), instance=employee)
if request.method == 'POST':
formset = BorrowingFormSet(request.POST, instance=employee)
if formset.is_valid():
formset.save()
return redirect('/login')
context = {'formset':formset}
return render(request, 'assetstracking/createBorrowing.html', context)发布于 2021-04-22 23:11:28
您必须在Models.py中设置默认值
class Borrowing(models.Model):
...
subscriber_id = models.ManyToManyField(Subscriber, default=default_subscriber)
...
def __str__(self):
return str(self.borrowing_id)如果您不需要员工选择,您可以从forms.py中的字段中删除subscriber_id
请注意,default_subscriber需要是订阅者。
https://stackoverflow.com/questions/67215446
复制相似问题