[英]Trying to format returned _set
我正在尝试用计划列表填充表单。
这是我对Planning模型的unicode
def __unicode__(self):
label = "ID: %s, Member(s): %s, Plan Type: %s" % (self.id, self.get_owners(), self.plan_type)
return unicode(label)
现在,我将调用get_owners,如下所示:
def get_owners(self):
owners = self.planmember_set.filter(ownership_type__code__in=["primary","joint"])
return owners
但是我的输出显示:
[<PlanMember: Name, [membership_type]><PlanMember: Name, etc etc>]
如何显示不带括号的输出,以及以下内容:
Name [membership_type], Name [membership_type], etc
您只是从get_owners
返回原始的get_owners
,Python对此调用了repr()
将其插入到字符串中。
最好的选择是在get_owners
进行格式化:
def get_owners(self):
owners = ...
return u", ".join(unicode(o) for o in owners)
您的get_owners
方法正在执行应做的事情:返回一组所有者。 然后,您可以在模板中循环显示这些所有者,并根据需要显示它们:
{% for owner in plan.get_owners %}
{{ owner }}
{% endfor %}
或者,在其他python代码中,您可以根据需要将其组成一个字符串:
def __unicode__(self):
owners = u', '.join(self.get_owners())
label = "ID: %s, Member(s): %s, Plan Type: %s" % (self.id, owners, self.plan_type)
return unicode(label)
模型方法不应强制显示。 他们应该只返回数据。 (除了__unicode__
这样的明显例外,该例外专门关于如何将模型显示为unicode文本。)
它看起来像你需要添加__unicode__
方法PlanMember
像你一样的Plan
。
def __unicode__(self):
label = "Name: %s, [%s]" % (self.name, self.membership_type)
return unicode(label)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.