【发布时间】:2018-06-25 21:28:24
【问题描述】:
我正在尝试使用 Django ModelForms 构建链接到 PostgreSQL 数据库的表单。该模板正在呈现两个字段(具有多对多关系的字段),但它只给了我一个“标题”的空框。
这是我的forms.py:
Forms.py:
class ProgramForm(forms.ModelForm):
class Meta:
model = Program
fields = ['function','task', 'title']
widgets = {
'function' : forms.Select,
'task' : forms.Select,
'title' : forms.Select,
}
这是我的 Models.py:
class Program(models.Model):
title = models.CharField(max_length=255)
function = models.ManyToManyField(function, related_name='programs')
task = models.ManyToManyField(Task, related_name='programs')
def __unicode__(self):
return self.title
class Task(models.Model):
tasknum = models.CharField(max_length=20)
taskname = models.CharField(max_length=100)
task_num_name = models.CharField(max_length=100)
function = models.ForeignKey(Function, related_name="tasks")
def __unicode__(self):
return self.task_num_name
class Function(models.Model):
function = models.CharField(max_length=50)
function_abrev = models.CharField(max_length = 25)
def __unicode__(self):
return self.function
Views.py:
def main(request):
return render (request, 'assignments/main.html')
def add_program(request):
form = ProgramForm()
return render (request, 'assignments/ad_form.html', {"form":form})
def link(request):
if request.method == 'POST':
form = ProgramForm(request.POST)
if form.is_valid():
return HttpResponse("we maybe getting somewhere")
else:
return HttpResponse("keep working")
我需要做几件事:
我需要“标题”在 html 页面中呈现为向下滚动(与“功能”和“任务”出现的方式相同。
我需要能够保存关系。模型填充了除关系之外的所有所需信息。目标是让工作人员能够选择一个“功能”,该选择充当“任务”向下滚动的过滤器(功能和任务具有 OneToMany),然后允许他们选择他们的任何程序想添加到他们的投资组合中。
任何帮助将不胜感激。
【问题讨论】:
-
Task 和 Function 模型有缩进问题 - 这是写这个问题的错误吗?
-
复制/粘贴代码时出错。我会努力解决的。
标签: python django postgresql django-forms django-views