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'))
我在使用查询集向我的选择添加空白选择时遇到问题,例如“----”包含“”值。
我找到了几个解决方案,但这并不正确。我收到如下错误: 只能将元组(不是"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'))