Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将类变量获取到Django模板_Python_Django_Django Models_Django Templates - Fatal编程技术网

Python 如何将类变量获取到Django模板

Python 如何将类变量获取到Django模板,python,django,django-models,django-templates,Python,Django,Django Models,Django Templates,我刚刚开始创建Django应用程序。我在models.py中有一个类,它有一个类变量CATEGORY\u CHOICES,其中包含选项字段的值 #models.py from django.db import models from django.utils import timezone class Entry(models.Model): CATEGORY_CHOICES = ( ('c1','choice 1'), ('c2','choice 2

我刚刚开始创建Django应用程序。我在
models.py
中有一个类,它有一个类变量
CATEGORY\u CHOICES
,其中包含选项字段的值

#models.py
from django.db import models
from django.utils import timezone

class Entry(models.Model):

    CATEGORY_CHOICES = (
        ('c1','choice 1'),
        ('c2','choice 2'),
        ('c3','choice 3'),
        ('c4','choice 4'),
    )

    date = models.DateField(default=timezone.now)
    time = models.TimeField(default=timezone.now)
    category = models.CharField(choices=CATEGORY_CHOICES,blank=False,null=False,max_length=2)
    value = models.TextField()
我想做一张表格,以备上课时使用。我在
选择
菜单中遇到问题,我想在该菜单中输入
类别选项
中的值,但我不知道如何操作

<!-- homepage.html -->
{% load staticfiles %}
{% load app_filters %}

<HTML>

    <HEAD>

        <TITLE>Website title</TITLE>
        <link rel="stylesheet" href="{% static "css/app.css" %}">

    </HEAD>

    <BODY>

        <form method="POST" class="form-inline">{% csrf_token %}
            <input type="date" class="form-control" id="date-input">
            <input type="time" class="form-control" id="time-input">
            <select class="form-control">
            {% for choice in Entry.CATEGORY_CHOICES %}
              <option>{{ choice|get_at_index:1 }}</option>
            {% endfor %}
            </select>
            <input type="text" class="form-control" id="value-input" placeholder="Value">
            <input type="submit" value="OK">
        </form>

    </BODY>

</HTML>
我没有得到任何错误,但在最终形式中,选择菜单中没有任何选项。

可能出现什么问题以及如何修复

#views.py
from django.shortcuts import render
from .forms import EntryForm

def home_page(request):
    form = EntryForm()
    return render(request, 'app/homepage.html', {'form':form})
forms.py

#forms.py
from django import forms
from .models import Entry

class EntryForm(forms.ModelForm):

    class Meta:
        model = Entry
        fields = ('date','time','category','value',)

在您看来,您正在将表单传递给模板,但是您没有按照预期的方式在模板中使用表单。要使用您传递的表单,请在模板中编写表单代码,如下所示:

<form method="POST" class="form-inline">
    {% csrf_token %}
    {{ form }}
    <input type="submit" value="OK">
</form>

然后使用按键输入选项在模板中访问它。

您能分享您的视图吗?这是您需要将数据发送到模板的地方。不使用Django定义表单有什么特殊原因吗?Django甚至可以从模型中为您创建一个。@Pynchia我试图使日期字段使用日历的缩影来提取日期,但没有成功。我想我最好先做一个我想要的形状,然后试着把它和模型联系起来。没必要这么做。您可以使用django表单,并在模板中包含日期字段的javascript插件(例如jquery的datepicker,但有数千个可用),您确定可以访问模型定义吗?(即名称
条目
)。请回答@Christofferkarsson的第一个评论
<form method="POST" class="form-inline">
    {% csrf_token %}
    {{ form }}
    <input type="submit" value="OK">
</form>
def home_page(request):
    form = EntryForm()
    return render(request, 'app/homepage.html', {
       'form': form,
       'entry_choices': Entry.CATEGORY_CHOICES
    })