如何在Django中用一个选择字符串替换没有用户名

时间:2016-04-12 14:18:52

标签: django django-models django-templates

我希望没有用户分配'当没有用户到票。

我对我的模特做了这个,但我没有看到任何变化

def __unicode__(self):
        print 'gets here****'
        if not self.assigned:
            return 'No user assigned'
        else:
            return self.assigned

其中,assign是为故障单分配的用户。

还有其他办法吗?

我有我的模板和视图:

{% for ticket in tickets %}
                <tr>
                    <td>{{ ticket.title }}</td>
                    <td>
                    {% for user in ticket.assigned.all %}
                        {{ user.email }}{% if not forloop.last %},{% endif %}
                    {% endfor %}
                    </td>

和我的观点:

def get_data(self, **kwargs):
        context = super(View, self).get_data(**kwargs)
        project = self.project_described()

        context.update({
            "project": project,
            "tickets": project.tickets.all()
        })
        return context

2 个答案:

答案 0 :(得分:2)

您可以使用for...empty

将它包含在模型中是没有意义的,所以如果在for循环中迭代的东西是空的,你可以提供默认值

{% for user in ticket.assigned.all %}
     {{ user.email }}{% if not forloop.last %},{% endif %}
{% empty %}
  No user assigned 
{% endfor %}

这里的优点是你可以随时使用empty部分在表格中插入一个按钮,以便分配人员(例如)。

答案 1 :(得分:0)

尝试使用{{ user }}代替{{ user.email }}