Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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
在Django模型中获取字段名_Django_Django Models_Django Templates - Fatal编程技术网

在Django模型中获取字段名

在Django模型中获取字段名,django,django-models,django-templates,Django,Django Models,Django Templates,我有一个django模型,有几个日期字段。模型是: class MyModel(models.Model) aaa = models.DateField(blank=True, null=True,verbose_name="x") nnn = models.DateField(blank=True, null=True, verbose_name="y") ddd = models.DateField(blank=True, null=True, verbose_nam

我有一个django模型,有几个日期字段。模型是:

class MyModel(models.Model)
    aaa = models.DateField(blank=True, null=True,verbose_name="x")
    nnn = models.DateField(blank=True, null=True, verbose_name="y")
    ddd = models.DateField(blank=True, null=True, verbose_name="z")
    ...
我想比较模型中的所有日期,并在模板中使用它。我可以在我的模型中使用:

class MyModel(models.Model)
    name = models.CharField()
    ...
    aaa = models.DateField(blank=True, null=True,verbose_name="x")
    nnn = models.DateField(blank=True, null=True, verbose_name="y")
    ddd = models.DateField(blank=True, null=True, verbose_name="z")
    ...
    def timing(self):
      fields = (
        self.aaa, self.nnn, self.ddd, ...
      )
      past = []
      for field in fields:
        if field:
            if field >= datetime.now().date():
                past.append( [True, field] )
            else:
                past.append( [False, field] )
        else:
            pass
      return past
在模板中:

{% for bl, value in c.timing %}
    {% if bl == False %}
      <dt>{{ bl }} :</dt> <dd>{{ value }}<dd>
    {% else %}
      <dt>{{ bl }} :</dt> <dd class="c1">{{ value }}<dd>
    {% endif %}
{% endfor %}
{bl的%s,c.timing%中的值}
{%bl==False%}
{{bl}}:{{value}
{%else%}
{{bl}}:{{value}
{%endif%}
{%endfor%}
这是可行的,但我希望在模板中有详细的字段名称。所以我可以举个例子

    {% if bl == False %}
      <dt>{{ fielname }} :</dt> <dd>{{ value }}</dd>
{%if bl==False%}
{{fielname}}:{{value}

感谢您提前提供所有答案

您可以为字段定义一个名称,使用默认名称且不可编辑,如下所示:

aaa_name = models.CharField(max_length=10, default='aaa_name', editable=False)
然后,要在模板中访问它,您可以像往常一样调用它:

{{ aaa_name }}