如何从中获取值forms.ModelChoiceField在Django?

2024-09-27 07:20:29 发布

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

首先,我想为我的英语道歉。我很难用英语写这个问题,但我在俄罗斯网站上找不到任何关于我问题的想法。所以,我想在学校网站上创建一个时间表。在我的模型.py

class Classes(models.Model):
    class Meta:
        db_table = 'classes'
        verbose_name_plural = "School_classes"
        verbose_name = "School_class"

    name = models.CharField(max_length=50, unique=True, verbose_name = 'School_classes')

    def __str__(self):
        return self.name

class Lessons(models.Model):
    class Meta():
        db_table = "lessons"
        verbose_name_plural = "Lessons"
        verbose_name = "Lessons"
    lessons_class = models.ForeignKey(Classes)
    lessons_creationdate = models.DateField()
    lessons_weekcontent = RichTextField()

然后,在表单.py我有:

^{pr2}$

在我的视图.py

def ShowTimetable(request):
    LForm = LessonsForm(request.POST or None)
    args = {}
    args['classes'] = Classes.objects.all()
    args['lessons'] = Lessons.objects.all()
    args['showlessons'] = LForm
    args.update(csrf(request))
    if request.method == 'POST' and LForm.is_valid():
        CurrentClass = LForm.cleaned_data('currentclass', None)
        args['class_name'] = CurrentClass
        args['lessons'] = Lessons.objects.filter(lessons_class = CurrentClass)
        if args['lessons']:

             return render_to_response('Weekcontentpage.html',args )
        else:

             return render_to_response('Weekcontentpage_null.html',args )
    else:
        return render_to_response('myview.html',args )

最后,在我的视图.html

{% extends 'base.html' %}
{% block content %}
<form  method="post">
  {% csrf_token %}
  {{ showlessons }}
  <input type="submit" value="Show timetable">
</form>
{% endblock %}

在Weekcontentpage.html:

{% extends "base.html" %}

{% block content %}

    <h4>On request "{{ class_name }}:</h4>
{% for lesson in lessons %}
    <h6>Date:{{ lesson.lessons_creationdate }}</h6>
    <h4>{{ lesson.lessons_weekcontent }}</h4>
{% endfor %}
{% endblock content %}

和周内内容页_空.html: {%扩展”基本.html“%}

{% block content %}

    <h4> On  "{{class_name}}"  is nothing found :( (</h4>


{% endblock content %}

现在,当我在下拉菜单中选择并按下“显示时间表”按钮后,我只看到“无”并且什么也没有找到:(。我知道问题出在视图.py,所以我无法从下拉列表中获取值,但我不知道如何修复它。所以我很感激你的帮助。感谢和抱歉我的英语:)


Tags: namepyverbosereturnmodelsrequesthtmlargs
1条回答
网友
1楼 · 发布于 2024-09-27 07:20:29

和其他领域一样。在

问题是您已经定义了一个表单类,但是您根本没有以任何方式使用它。与其忽略表单并从request.POST获取数据,不如用POST数据实例化表单,对其调用is_valid(),然后从form.cleaned_data获取结果。在

相关问题 更多 >

    热门问题