首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Django表单中设置默认值?

如何在Django表单中设置默认值?
EN

Stack Overflow用户
提问于 2021-04-22 22:40:10
回答 1查看 41关注 0票数 0

在数据库中有类借用,其中包含将借用项目的employee_id、tag_id (项目)和subscriber_id

在我的代码中,如果员工请求借款,他可以选择subscriber_id。我需要将subscriber_id设置为1,甚至不要求员工进行选择。

在models.py文件中

代码语言:javascript
复制
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文件中

代码语言:javascript
复制
class BorrowingForm(ModelForm):
class Meta:
    model = Borrowing
    fields = ['end_date', 'employee_id', 'tag_id', 'subscriber_id']

在views.py中

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2021-04-22 23:11:28

您必须在Models.py中设置默认值

代码语言:javascript
复制
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需要是订阅者。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67215446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档