使用If语句

时间:2018-03-06 14:04:39

标签: python django

我试图在HTML表格中创建一个选择框,其中应在组合框中选择给定的名称。为此,我需要创建一个嵌套循环。外循环创建行,而内循环使用" Resources"的选项填充网格单元格。对于此示例,我仅显示创建资源单元格的代码。

嵌套循环创建项目,并包含一个if语句,将action.owner值与resource.name值进行比较。如果项目匹配,则应选择选项值。服务器运行代码,我找不到任何隐藏的问题。但是我没有得到预期的结果。没有选择任何项目。知道我做错了吗?

请注意,我一周前才开始学习Django和Web开发!

{% for action in actions %}
<tr>
    <td>
        <SELECT class="custom-select">

        {% for resource in resources %}

        <option value = "{{resource.name}}" {% if action.owner == resource.name %}selected="selected"{% endif %}>{{resource.name}}</option>

        {% endfor %}

        </SELECT>
    </td>

</tr>
{% endfor %}

我使用虚拟html标记选择的随机行的一些HTML输出,以显示哪个action.owner有问题:

              <td>
                  <SELECT class="custom-select">

                      <option value = "None" actionOwnerVal = John >None</option>
                      <option value = John" actionOwnerVal = John >John</option>
                      <option value = "Bob" actionOwnerVal = John >Bob</option>
                  </SELECT>
                </td>

动作类:

actionChoices = (
    ('New','New'),
    ('In Progress','In Progress'),
    ('Critical','Critical'),
    ('Done','Done')
)


class Actions(models.Model):
    project = models.ForeignKey(Projects, on_delete=models.CASCADE)
    task = models.CharField(max_length=500)
    owner = models.ForeignKey(Resources, on_delete=models.CASCADE,default = 0)
    closureDate = models.DateTimeField(default = datetime.now,blank=True)
    status = models.CharField(max_length=500,choices=actionChoices,default='New')
    notes = models.CharField(max_length=1000)

    def __str__(self):
        return(self.task)

    class Meta:
        verbose_name_plural = "Actions"

Resources类:

class Resources(models.Model):
    name = models.CharField(max_length=200)

    def __str__(self):
        return(self.name)

    class Meta:
        verbose_name_plural = "Resources"

1 个答案:

答案 0 :(得分:1)

resourceaction.owner都是Resource个对象,因此您应该将resource.nameaction.owner.name进行比较。

action.owner在模板中打印时似乎是一个字符串值,因为它的类定义了__str__方法。