我想通过模板标签传递对象的名称,但是我收到了这个错误:
'str' object has no attribute 'mymodelone_set'
我的模特:
class mymodelone(models.Model):
name = models.CharField(max_length=50)
show = models.ForeignKey('mymodeltwo')
def __unicode__(self):
return self.title
class mymodeltwo(models.Model):
title = models.CharField(max_length=50)
description = models.TextField(blank=True)
def __unicode__(self):
return self.name
我的模板标签如下所示:
在我的base.html中:
{% load my_tags %}{% my_func obj%}
在我的model_tag.py
中register = template.Library()
@register.inclusion_tag('myapp/widget.html')
def my_func(obj):
param1 = obj.mymodelone_set.all()
return {}
我做错了什么?
答案 0 :(得分:0)
class mymodelone(models.Model):
name = models.CharField(max_length=50)
show = models.ForeignKey('mymodeltwo')
def __unicode__(self):
return self.name
class mymodeltwo(models.Model):
title = models.CharField(max_length=50)
description = models.TextField(blank=True)
def __unicode__(self):
return self.title
你把你的self.name/self.title倒错了,至少对我来说是这样的。
答案 1 :(得分:0)
您可以使用
等模板标记@register.filter
def my_func(obj):
return obj.__class__.__name__
在模板中使用它:
{{ obj | my_func }}