【发布时间】:2020-07-13 11:05:56
【问题描述】:
下面的 Django 表单有效,但对于我来说,我无法弄清楚如何将 operator 的 ModelChoiceField 设置为空白或默认设置为 None。我希望用户可以选择将此选项字段设置为None。这会自动填充用户列表中的第一个用户。
型号
class Build(models.Model):
PSScustomer = models.ForeignKey(Customer, on_delete=models.CASCADE)
author = models.ForeignKey(get_user_model(),related_name='+',on_delete=models.CASCADE,blank=True, null= True,)
plannedAuthor = models.ForeignKey(CustomUser,related_name='+',blank=True, null= True, on_delete=models.CASCADE)
status = models.CharField(max_length=100,blank=True,)
operator = models.ForeignKey(CustomUser,related_name='+',blank=True, null= True, on_delete=models.CASCADE, default=None)
查看
class queuedBuild_CreateView(LoginRequiredMixin,CreateView):
model = Build
form_class = queuedBuild_Creation_Form
template_name = 'addQueuedBuild.html'
login_url = 'login'
success_url = reverse_lazy('equipmentdashboard')
def get_form(self, form_class=None):
form = super().get_form(form_class)
customer = self.request.user.PSScustomer
form.fields['operator'].choices = [(item.id, item.first_name) for item in CustomUser.objects.filter(isDevice=False, PSScustomer = customer)]
return form
表格
class queuedBuild_Creation_Form(forms.ModelForm):
buildDescrip = forms.ModelChoiceField(initial='Your name')
def __init__(self, *args, **kwargs):
super(queuedBuild_Creation_Form, self).__init__(*args, **kwargs)
self.fields['status'].required = True
class Meta:
model = Build
fields = ['status', 'operator',]
【问题讨论】:
标签: django