我有一个包含课程名称的文本文件。我希望他们成为我模特中的选择。但我不确定如何填充COURSE_CHOICES。看起来选择将是硬编码的。但是选择需要是可编辑的。
目前我所拥有的是:
COURSE_CHOICES = ?????
class Course(models.Model):
...
subject = models.CharField(max_length = 255)
我是新人。所有帮助表示赞赏。感谢。
答案 0 :(得分:1)
然后打开并阅读文件:
file = open('myfile.txt')
COURSE_CHOICES = tuple((choice,choice) for choice in file.readline())
我不知道你的档案是如何构成的......所以我只能这样说。
答案 1 :(得分:0)
我不太确定你想要达到什么目标。但是将所有课程存储在模型中是明智之举:
# 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()
创建(普通)表单时,您可以使用ModelChoiceField
:
course = forms.ModelChoiceField(queryset=Crouse.objects.all(),
empty_label="(Nothing)")
https://docs.djangoproject.com/en/dev/ref/forms/fields/#modelchoicefield
或创建modelForm
:
class CourseForm(ModelForm):
class Meta:
model = Course
https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#modelform
注意:我没有测试代码。