我用这个简单的代码为 HTML 文件创建了一个选择字段: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_listdef get_my_students(): student_list = get_student() choices_list = student_list return choices_listclass 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')我现在的问题是,MY_CHOICES 是一个普通的元组,其中一些参数显示在我的视图中,但我想获取存储在另一个名为“Students”的应用程序中的对象(想要导出“first_name”+“last_name” ) 而不是 MY_CHOICES 中的条目。对象存储在这个类中:class Student(models.Model): first_name = models.CharField(_(u'Vorname'),max_length=30) last_name = models.CharField(_(u'Nachname'),max_length=30) teacher = models.ForeignKey(Teacher, on_delete=models.CASCADE) location = models.ForeignKey(Location, on_delete=models.CASCADE) postal_code = models.CharField(_(u'Postleitzahl'),max_length=30) city = models.CharField(_(u'Ort'),max_length=30) def __str__(self): return "%s %s" % (self.first_name, self.last_name)所以我正在寻找一种战略方法,如何解决这个问题。希望有人能给我一个提示。
1 回答

精慕HU
TA贡献1845条经验 获得超8个赞
你让这比它需要的要困难得多。您不想从 Student 中获取名称并“将其放入元组 MY_CHOICES”。元组无关紧要。您想要的是有一个从 Student 模型填充的字段,并且有一个专门用于该字段的表单字段:ModelChoiceField。你可以直接使用它:
from students.models import Student
class StudentForm(forms.Form):
student = forms.ModelChoiceField(queryset=Student.objects.all())
你不需要做任何其他事情。
添加回答
举报
0/150
提交
取消