表单中的 Django 选择字段
Posted
技术标签:
【中文标题】表单中的 Django 选择字段【英文标题】:Django choices field in form 【发布时间】:2021-09-29 00:17:33 【问题描述】:我有两张桌子:
class Career(models.Model):
title = models.CharField(max_length=300)
job_type = models.CharField(max_length=20, blank=False, default=None)
location = models.CharField(max_length=200, blank=False, default=None)
description = RichTextUploadingField(max_length=227, blank=False, default=None)
class ApplyJob(models.Model):
first_name = models.CharField(verbose_name=_('First Name'), max_length=100)
last_name = models.CharField(verbose_name=_('Last Name'), max_length=100)
email = models.EmailField(verbose_name=_('Email'), max_length=200)
position = models.CharField(verbose_name=_('Position'), max_length=40)
apply = models.ManyToManyField(Career, default=None, blank=True)
还有一个 ModelForm:
class Meta:
model = ApplyJob
fields = ('first_name', 'last_name', 'email','position', 'message')
widgets =
'position': forms.Select(choices=CHOICES, attrs='class': 'form-control')
我想在position
中使用职业表中的值添加选项选择,因此尝试查询职业表以获取所有值。所以我尝试了CHOICES = Career.objects.values_list('title', flat=True).distinct()
,但我得到了Exception Error: too many values to unpack (expected 2)
对问题所在有什么想法吗? 谢谢!
【问题讨论】:
这***.com/questions/37205793/…能解决你的问题吗! 感谢您的评论!但这并没有解决我的问题! 【参考方案1】:对于那些可能挑战同样问题的人。我通过在查询中添加id
解决了这个问题。我的理解是选择字段需要一个 id 和一个显示名称。 CHOICES = Career.objects.values_list('id', 'title').distinct()
【讨论】:
以上是关于表单中的 Django 选择字段的主要内容,如果未能解决你的问题,请参考以下文章