2015-12-20 68 views
2

我有一个包含多个DateField的Django模型。该模型是:在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 %} 

的作品,但我想在我的模板字段的详细名称。这样我就可以提前使用为例

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

感谢所有的答案

回答

0

可以为字段定义一个名称,一个默认的名称,而不是编辑,这样的事情:

aaa_name = models.CharField(max_length=10, default='aaa_name', editable=False) 

然后在模板中访问它,你可以像往常一样叫它:

{{ aaa_name }} 
相关问题