Django 如何在表单选择中向查询集添加空白选择

Django how to add blank choice to queryset in form choices

我在使用查询集向我的选择添加空白选择时遇到问题,例如“----”包含“”值。

我找到了几个解决方案,但这并不正确。我收到如下错误: 只能将元组(不是"ValuesListQuerySet")连接到元组

Forms.py:

BLANK_CHOICE = (('', '---------'),)

class OrderCreateForm(forms.ModelForm):

    class Meta:
        model = Order
        fields = ('price', 'deadline', 'finished', 'client', 'platform')

    def __init__(self, request_client_id, *args, **kwargs):
        super(OrderCreateForm, self).__init__(*args, **kwargs)
        self.fields['platform'].choices = BLANK_CHOICE + Platform.objects.filter(client_id=request_client_id).values_list('id', 'name')

你能给我一些正确的建议吗?

您可以在 __init__ 方法本身中将查询集转换为元组。

def __init__(self, request_client_id, *args, **kwargs):
    super(OrderCreateForm, self).__init__(*args, **kwargs)
    self.fields['platform'].choices = BLANK_CHOICE + tuple(Platform.objects.filter(client_id=request_client_id).values_list('id', 'name'))