我将公司信息和类别信息传递到Django模板页面,我想从Company.companycategory中获取一个值,并在另一个返回人类可读字符串的ModelCategory模型中查找此ID。有没有办法在模板中执行此操作?
{% for company in company_list %}
<tr>
<td>{{company.companyname}}</td> <td>{{company.companypostcode}}</td> <td>{{company.key.id}}</td>
</tr>
</div>
{% endfor %}
所以company.key.id是我可以用来从CompanyCategory模型查找记录的ID,我发送了一个类别列表。所以我想我唯一的选择是循环寻找匹配的所有类别?或者有更好的方法吗?
这是所要求的模型:
class CompanyCategory(db.Model):
categoryname = db.StringProperty(required=False)
def __unicode__(self):
return u'%s' % (self.categoryname)
class Company(db.Model):
companyurl = db.StringProperty(required=False)
companyname = db.StringProperty(required=False)
companydesc = db.TextProperty(required=False)
companyaddress = db.PostalAddressProperty(required=False)
companypostcode = db.StringProperty(required=False)
companyemail = db.EmailProperty(required=False)
companycountry = db.StringProperty(required=False)
companyvalid = db.BooleanProperty()
companyentrytime = db.DateTimeProperty(auto_now_add=True)
companylatlong = db.GeoPtProperty()
companycategory = db.ReferenceProperty(CompanyCategory, collection_name='compcategory')
答案 0 :(得分:1)
如果您使用的是vanilla django,您的模型似乎足够相关以保证ForeignKey
关系,在这种情况下您可以通过类似company.companycategory.name
似乎ReferenceProperty
会在appengine上提供类似的功能。
https://developers.google.com/appengine/docs/python/datastore/typesandpropertyclasses#ReferenceProperty
允许每家公司参考一个类别并将其作为财产提供。
如果您无法创建引用属性,那么我相信您只需在视图中为每个公司查找相应的类别,或者您可以在模型上创建一个方法来为您获取此数据,尤其是这似乎是一种常见的操作。使用@property
修饰方法应该允许您在模板中访问它。
答案 1 :(得分:0)
在@ dm03514的帮助下,我可以访问真实值,因此无需使用{{company.companycategory.categoryname}}