我试图在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"
答案 0 :(得分:1)
resource
和action.owner
都是Resource
个对象,因此您应该将resource.name
与action.owner.name
进行比较。
action.owner
在模板中打印时似乎是一个字符串值,因为它的类定义了__str__
方法。