gpt4 book ai didi

python - Django 表单错误 : Select a valid choice. That choice is not one of the available choices

转载 作者:太空宇宙 更新时间:2023-11-04 04:47:50 26 4
gpt4 key购买 nike

我正在尝试创建一个带有两个下拉菜单的网站:部门和类(class)编号。下拉菜单的数据来 self 的 SQL 数据库的“类(class)”表。现在我的网站正确初始化并在下拉菜单中显示正确的选项。然而,当用户在下拉菜单中选择一个选项并提交他们的选择时,Django 抛出一个“选择一个有效的选择。该选择不是可用的选择之一。”错误。我怀疑我的表单输出格式不正确,因此无法在我的数据库中找到选择,但我已经阅读了许多其他具有相同问题的 SO 问题,但仍然一无所获。感谢您的帮助。

模型.py

from django.db import models

class Dept(models.Model):
dept = models.CharField(max_length=255, db_column = 'dept')
class Meta:
managed = False
db_table = 'courses'
def __str__(self):
return self.dept

class Course_num(models.Model):
course_num = models.CharField(max_length=255, db_column = 'course_number')
class Meta:
managed = False
db_table = 'courses'
def __str__(self):
return self.course_num

表单.py

from django import forms
from .models import *

class CourseForm(forms.Form):
dept = forms.ModelChoiceField(
queryset=Dept.objects.values_list('dept', flat = True).distinct().\
order_by('dept').exclude(dept__isnull=True),
required=False,
empty_label="No preference",
label=u"Department")

course_num = forms.ModelChoiceField(
queryset=Course_num.objects.all().\
order_by('course_num').values_list('course_num', flat = True).\
distinct().exclude(course_num__isnull=True),
required=False,
empty_label="No preference",
label=u"Course Number")

views.py

def home(request):
context = {}
res = None
form_CourseForm = CourseForm()
if request.method == 'GET':
form_CourseForm = CourseForm(request.GET)
args = {}
if form_CourseForm.is_valid():
dept = form_CourseForm.cleaned_data['dept']
if dept:
args['dept'] = dept
course_num = form_CourseForm.cleaned_data['course_num']
if course_num:
args['course_num'] = course_num
...

最佳答案

改变你的查询集并尝试

class CourseForm(forms.Form):
dept = forms.ModelChoiceField(
queryset=Dept.objects.distinct().
order_by('dept').exclude(dept__isnull=True),
required=False,
empty_label="No preference",
label=u"Department")

course_num = forms.ModelChoiceField(
queryset=Course_num.objects.distinct().
order_by('course_num').exclude(course_num__isnull=True),
required=False,
empty_label="No preference",
label=u"Course Number")

关于python - Django 表单错误 : Select a valid choice. That choice is not one of the available choices,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49124081/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com