我已使用以下简单代码为HTML文件创建了一个选择字段:
LongAdder
我现在的问题是,MY_CHOICES是一个普通的元组,在我的视图中显示了一些参数,但是我想获取存储在另一个名为“学生”的应用程序中的对象(想导出“ first_name” + “ last_name”),而不是MY_CHOICES中的条目。 对象存储在此类中:
MY_CHOICES = (
('0', 'Johnny B. Goode'),
('1', 'Lightning McQueen'),
('2', 'Iron Man'),
)
def get_student():
student_data = MY_CHOICES
student_list = student_data
return student_list
def get_my_students():
student_list = get_student()
choices_list = student_list
return choices_list
class studentForm(forms.Form):
def __init__(self, *args, **kwargs):
super(studentForm, self).__init__(*args, **kwargs)
self.fields['my_students_field'] = forms.ChoiceField(choices=get_my_students())
def get_data(request):
form = studentForm()
if form:
print('form')
return render_to_response('bills/generator.html',{'form': form})
else:
return print('no Form')
因此,我正在寻找一种战略方法,即如何解决该问题。希望有人能给我提示。
答案 0 :(得分:0)
您正在使它变得比原来需要的要难得多。您不想从Student取名字,然后“将其放入元组MY_CHOICES”。元组无关紧要。您想要的是有一个从Student模型填充的字段,并且特别有一个表单字段:ModelChoiceField。您可以直接使用它:
from students.models import Student
class StudentForm(forms.Form):
student = forms.ModelChoiceField(queryset=Student.objects.all())
您无需执行其他任何操作。