0

次のビューがあります

def deals(request):
    usr=UserProfile.objects.get(user_id=request.user.id)
    merchant=MerchantProfile.objects.get(user_id=usr.id)
    dealItems=MerchantDeal.objects.filter(merchant_id=merchant.id)
    stateText = {1 : 'Created',
                  2 : 'Activated',
                  3 : 'Completed'}

    return render_to_response('deals.html',locals(),context_instance=RequestContext(request))

モデルMerchantDealには、作成済み、完了済み、使用済みの 3 つの ID 1、2、3 を持つ 1 つのフィールド state_id があります。

次のテンプレートがあります

<table>
                  <tr>
                    <th>Deals</th>
                    <th>Status</th>
                    <th>Start date </th>
                    <th>End date </th>
                    <th>Used</th>
                    <th>Edit</th>
                  </tr>
                  {% for Item in dealItems %}
                  <tr class="gray">
                    <td>{{Item.title|capfirst}} </td>
                    <td >{{Item.current_state}}</td>
                    <td>{{Item.start_date}}</td>
                    <td>{{Item.end_date}}</td>
                    <td width="90">{{Item.used}}</td>
                    <td width="92"><a class="ajax cboxElement" href="/ajax/item?id={{foodItem.id}}">edit</a></td>
                  </tr>
                  {%endfor%}
                </table>

これは、current_state を、created、completed、および used ではなく、1、2、3 として表示します。私もstateText配列を定義しました

stateText = {1 : 'Created',
             2 : 'Activated',
             3 : 'Completed'}

データベースから取得した 1,2,3 に対してそれをレンダリングする方法は?

4

1 に答える 1

1

あなたのMerchantDealモデルでは:

STATE_CHOICES = ((1,'Created'),(2,'Activated'),(3,'Completed'))

class MerchantDeal(models.Model):
    # .. your various other fields
    current_state = models.IntegerField(choices=STATE_CHOICES)

次に、テンプレートで:

<td>{{ Item.get_current_state.display }}</td>

ドキュメントには、これがどのように機能するかが詳しく説明されています。

于 2012-11-08T04:12:51.070 に答える