Форма ниже Django работает, но я не могу понять, как сделать ModelChoiceField для operator
пустым или установить по умолчанию 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',]