我将公司信息和类别信息传递到 Django 模板页面,我想从 Company.companycategory 中获取值,并在另一个模型 CompanyCategory 中查找此 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')
最佳答案
如果您使用的是普通 django,那么您的模型似乎足够相关,足以保证 ForeignKey
关系,在这种情况下,您可以通过诸如 company.companycategory.name 之类的内容访问公司类别
看来 ReferenceProperty
将为您在 appengine 上提供类似的功能。
https://developers.google.com/appengine/docs/python/datastore/typesandpropertyclasses#ReferenceProperty
允许每个公司引用一个类别并将其作为属性提供。
如果您无法创建引用属性,那么我相信您只需在 View 中查找每个公司的相应类别,或者您可以在模型上创建一个方法来为您获取这些数据,特别是因为这似乎是一个常见的操作。使用 @property
修饰方法应该允许您在模板中访问它。
关于python - Django 模板中的辅助键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10757063/