Django Forms - 该选项不是可用选项之一

Django Forms - That choice is not one of the available choices

我有一个更新用户的表单,错误出现在角色字段上。我正在根据客户过滤角色。我正在为角色获取正确的值,但无论如何都会弹出错误。

Select a valid choice. That choice is not one of the available choices

views.py

class UserUpdateView(LoginRequiredMixin, SuccessMessageMixin, UpdateView):
    form_class = UserUpdateForm
    template_name = 'users/modals/update_profile_modal.html'
    success_message = "User updated successfully."

    def get_form_kwargs(self):
        kw = super().get_form_kwargs()
        kw['request'] = self.request
        return kw

    def get_object(self, *args, **kwargs):
        user_id = self.request.session['user_detail']
        return TbUser.objects.get(id=user_id)

    def form_invalid(self, form):
        messages.error(self.request, form.errors)
        print(form.errors)
        return redirect('user-detail', pk=self.object.pk)

    def get_success_url(self):
        return reverse('user-detail', kwargs={'pk': self.object.pk})

forms.py

class UserUpdateForm(forms.ModelForm):
    email = forms.EmailField()

    def __init__(self, request, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.request = request
        if request.user.customer:
            self.fields['department'].queryset = TbDepartment.objects.filter(
                customer=request.user.customer)
            self.fields['role'].queryset = TbRole.objects.filter(
                customer=request.user.customer)
        self.fields['username'].required = True
        self.fields['real_name'].required = True
        self.fields['email'].required = True
        self.fields['cellphone'].required = True
        self.fields['department'].required = True
        self.fields['role'].required = True

    class Meta:
        model = TbUser
        fields = ['username', 'real_name', 'email',
                  'cellphone', 'department', 'role']

我正在使用此 class 过滤所有数据,每个客户在 table 中都有自己的行。

class TbCustomer(models.Model):
    id = models.CharField(primary_key=True, max_length=50)
    short_name = models.CharField(max_length=255)
    names = models.CharField(max_length=255)
    descs = models.CharField(max_length=255, blank=True, null=True)
    creat_time = models.DateTimeField()
    creat_user = models.CharField(max_length=255)
    authenticationcode = models.CharField(
        db_column='authenticationCode', max_length=255, blank=True, null=True)
    is_available = models.IntegerField(blank=True, null=True)
    logo_img = models.CharField(max_length=40, blank=True, null=True)
    response_message = models.CharField(max_length=100, blank=True, null=True)
    language = models.CharField(max_length=20, blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'tb_customer'

    def __str__(self):
        return '%s' % self.short_name

我正在使用 {{form|crispy}}

渲染表单
{% block modal %}
{% load static %}
{% load crispy_forms_tags %}

<!-- Modal -->
<div class="modal fade" data-backdrop="static" data-keyboard="false" id="tb-user-profile-update-modal" tabindex="-1"
    role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-sm" role="document">
        <div class="modal-content">
            <form enctype="multipart/form-data" action="{% url 'tb-user-update' pk=user.id %}" method="POST">
                <div class="row d-flex justify-content-center">
                    <div class="col-10">
                        <fieldset class="form-group mt-2">
                            {{user.username}}
                            {% csrf_token %}
                            {{form|crispy}}
                        </fieldset>
                        <div class="form-group">
                            <button class="btn btn-secondary" type="submit">
                                <span>Update</span>
                            </button>
                            <button class="btn btn-secondary" type="button" data-dismiss="modal">
                                <span>Close</span>
                            </button>
                        </div>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>
{% endblock modal %}

我已经删除了角色功能,它在我的项目中是多余的。