1

会社情報とカテゴリ情報を 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')
4

2 に答える 2

1

バニラのdjangoを使用していた場合、モデルは関係を保証するのに十分に関連しているようForeignKeyです。その場合、次のような方法で会社のカテゴリにアクセスできますcompany.companycategory.name

ReferencePropertyappengine で同様の機能が得られるようです 。https://developers.google.com/appengine/docs/python/datastore/typesandpropertyclasses#ReferenceProperty により、各企業がカテゴリを参照し、プロパティとして利用できるようになります。

参照プロパティを作成できない場合は、各会社のビューで対応するカテゴリを検索するか、このデータを取得するモデルにメソッドを作成できます。特にこれは次のように思われるためです。それは一般的な操作かもしれません。を使用してメソッドを装飾する@propertyと、テンプレート内でアクセスできるようになります。

于 2012-05-25T15:30:05.060 に答える
0

@ dm03514の助けを借りて、実際の値にアクセスできるため、さらに検索する必要なくテキストにアクセスできます{{company.companycategory.categoryname}}

于 2012-05-28T15:14:21.750 に答える