如何为Django中的CharField创建一个长长的选择列表
我有一个包含课程名称的文本文件。我希望它们成为我模型中的选择。但我不知道如何填充课程选择。看起来选择将被硬编码。但是这些选项需要是可编辑的 我目前所拥有的一切如下:如何为Django中的CharField创建一个长长的选择列表,django,django-models,Django,Django Models,我有一个包含课程名称的文本文件。我希望它们成为我模型中的选择。但我不知道如何填充课程选择。看起来选择将被硬编码。但是这些选项需要是可编辑的 我目前所拥有的一切如下: COURSE_CHOICES = ????? class Course(models.Model): ... subject = models.CharField(max_length = 255) 我是新来的。感谢所有的帮助。谢谢。打开并阅读文件,然后: file = open('myfile.txt')
COURSE_CHOICES = ?????
class Course(models.Model):
...
subject = models.CharField(max_length = 255)
我是新来的。感谢所有的帮助。谢谢。打开并阅读文件,然后:
file = open('myfile.txt')
COURSE_CHOICES = tuple((choice,choice) for choice in file.readline())
我不知道您的文件是如何构造的……所以我只能说这些。我不太确定您想要实现什么。但将所有课程存储在模型中是一件明智的事情:
# models.py
class Course(models.Model):
title = models.CharField(max_length = 255)
# python manage.py shell
from myapp.models import Course
path = "path/to/file.txt"
data = open(path, 'r').read()
course_list = data.split()
for i in course_list:
c = Course(title=i)
c.save()
创建(普通)表单时,可以使用modelcoocefield
:
course = forms.ModelChoiceField(queryset=Crouse.objects.all(),
empty_label="(Nothing)")
或者创建一个模型表单
:
class CourseForm(ModelForm):
class Meta:
model = Course
注意:我没有测试代码。您是否尝试过类似于
choices=get\u choices\u from\u file
?其中,get\u choices\u from\u file
是一个以正确格式返回所有选项的方法。我尝试过类似的方法,但我会尝试一下,我是python/django新手,这正是我想要的。我的文件是一行一行构建的,所以每一行都是一个“过程”/“选择嘿,伙计,我只是想说谢谢,我不得不编辑了你的代码,但在修复了我的数据库后,我终于让它工作了,再次感谢。不客气。您可以接受答案,如果觉得有用,请向上按箭头!;)快乐编码!我很想向上按箭头,但是我的代表太低了,这个问题没有让我有一个好的开始,因为它目前是-1 lol。谢谢,尽管我真的很感激。堆栈溢出的想法是,问题及其答案对其他人也很有用。因此,问题必须具有一定的质量。有人认为你的Q不是一个好的贡献。你靠各种各样的东西赢得名声。喜欢阅读关于页面;)。你可以接受答案。。。点击复选标记(并检查您的代表)。