Django ModelForm未显示所有字段

2024-10-02 02:26:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用Django ModelForms构建链接到PostgreSQL数据库的表单。模板正在呈现其中的两个字段(具有许多关系的字段),但它只为“title”提供了一个空框。在

这是我的表单.py公司名称:

在表单.py公司名称:

class ProgramForm(forms.ModelForm):
class Meta:
    model = Program
    fields = ['function','task', 'title']
widgets = {
    'function' : forms.Select,
    'task' : forms.Select,
    'title' : forms.Select,
    }

这是我的模型.py公司名称:

^{pr2}$

在视图.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")

我需要一些事情发生:

  1. 我需要的“标题”呈现在html页面向下滚动(相同的方式“功能”和“任务”出现。

  2. 我需要能挽救这些关系。模型中填充了除关系之外的所有所需信息。目标是让工作人员能够选择一个“功能”,使其作为向下滚动“任务”的过滤器(功能和任务有一个单一的对象),然后允许他们选择任何他们想添加到他们的投资组合中的程序。

任何帮助都将不胜感激。在


Tags: py功能form名称表单return关系title
2条回答

我可以从视图.py并将if传递给模板。在

Views.py 

def function_page(request, Function_id):
assignments = Function.objects.get(id=Function_id)
programs = assignments.programs.all()
context = {
   'assignments': assignments,
   'programs' : programs
}
return render (request, 'function.html', context)

HTML格式

^{pr2}$

1。表单中的标题字段

对于这一点,我不太明白title字段是如何像函数和任务一样向下滚动的。函数和任务是下拉式的,因为它们是许多链接到其他模型的字段,这意味着用户必须选择要链接的函数模型和任务模型中的其他对象。另一方面,title字段只是一个CharField,因此没有定义的一组内容供用户选择。要允许用户输入程序的标题,您应该将title的小部件更改为Textarea():

表单.py

from django.forms import ModelForm, Textarea

class ProgramForm(forms.ModelForm):
    class Meta:
        model = Program
        fields = ['function','task', 'title']
    widgets = {
        'function' : forms.Select,
        'task' : forms.Select,
        'title' : Textarea(),
    }

2。从表单中保存程序

要保存用户在staff member上创建的程序,只需添加窗体保存()到您的链接(请求)函数:

视图.py

^{pr2}$

希望这有帮助!在

相关问题 更多 >

    热门问题