【问题标题】:Django choices field in form表单中的 Django 选择字段
【发布时间】: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)

对问题所在有什么想法吗? 谢谢!

【问题讨论】:

标签: django django-forms django-queryset


【解决方案1】:

对于那些可能挑战同样问题的人。我通过在查询中添加id 解决了这个问题。我的理解是选择字段需要一个 id 和一个显示名称。 CHOICES = Career.objects.values_list('id', 'title').distinct()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-08
    • 2011-09-01
    • 2012-08-12
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 2011-07-22
    相关资源
    最近更新 更多