Django ValueError没有足够的值来解压缩元组列表(应为2,得到1)

2024-10-01 02:32:58 发布

您现在位置:Python中文网/ 问答频道 /正文

这就是导致错误的原因,我知道很多:

你知道吗表单.py文件:

class CustomSignupForm(UserCreationForm):
    ENGLISH_INTEREST = EnglishInterest.get_english_interest_data()

    english_interest = forms.MultipleChoiceField(choices=ENGLISH_INTEREST, widget=forms.CheckboxSelectMultiple())

你知道吗型号.py文件:

class EnglishInterest(models.Model):
    english_interest = models.CharField(max_length=255)

    @staticmethod
    def get_english_interest_data():
        return EnglishInterest.objects.values_list('english_interest')

我知道一定有一些简单的解决办法,让这个多选领域的工作。如果我改为使用:

ENGLISH_INTEREST= [
('general speaking', 'General Speaking'),
('work opportunities', 'Work Opportunities'),
('travel', 'Travel'),
('study abroad', 'Study Abroad'),
]

Tags: 文件py表单datagetenglishmodels错误
1条回答
网友
1楼 · 发布于 2024-10-01 02:32:58

选项字段需要id和显示名称。通常您可以直接向它传递一个queryset,但也可以传递一个元组列表。你知道吗

choices = [(0, 'Choice 1'), (1, 'Choice 2')]

在您的情况下,您需要做一个小的更改,以便在值列表中包含id字段

def get_english_interest_data(self):
    return EnglishInterest.objects.values_list('id', 'english_interest')

相关问题 更多 >