2012-01-22 15 views
1

私は新しいExtJSユーザーです。次の問題があります。私はいくつかのデータをExtJSグリッドにロードしようとしていますが、これはサーバー上のjsonにシリアライズされています(私はdjango serialize()メソッドを使用します)が、空のグリッドを取得しています。問題は、グリッドにデータをロードするコールバック関数にあるようだが、私はそれを解決することはできません。ExtJs 4 JSONからグリッドにレコードを追加します

ここ

が私のコードです:

コントローラー機能

renderStudentList:function(){ 
      var ul = this.getStore('Users');     
      ul.load({ 
       scope :this, 
       callback : function(records, operation, success){ 
        for(i in records){ 
/* here, i think, should be a code that assigns values from json to the grid records */ 
         console.log(records[i].get('fields').name, records[i].get('fields').email);     
        }  
       }  
      }); 
    } 

私は、サーバーから取得したJSONデータ、

{success:true, "students":[{"pk": 1, "model": "poll.student", "fields": {"name": "Bob", "email": "[email protected]"}}, {"pk": 2, "model": "poll.student", "fields": {"name": "Sam", "email": "[email protected]"}}]} 

私のモデル

Ext.define('AM.model.User', { 
    extend: 'Ext.data.Model', 
    idProperty: 'pk', 
    fields: [{ 
     name:'pk', 
     type:'integer' 
    },{ 
     name: 'fields', 
     type: 'object' 
    }] 
}); 

私店舗

Ext.define('AM.store.Users', { 
    extend: 'Ext.data.Store', 
    model: 'AM.model.User', 
    // autoLoad: true, 

    proxy: { 
     type: 'ajax', 
     api: { 
      read: '/ex/'    
     }, 
     reader: { 
      idProperty: 'pk', 
      type: 'json', 
      root: 'students', 
      successProperty: 'success' 
     } 
    } 
}); 

ありがとうございます!

{success:true, "students":[{"pk": 1, "fields": {"name": "Bob", "email": "[email protected]"}}, {"pk": 2, "fields": {"name": "Sam", "email": "[email protected]"}}]} 

をこれはpythonでこのような何かに行われます:あなたはJSON文字列を受け取る後 を:今

答えて

1

を見ますあなたのjsonストリングで。

actual_data = [d['students']['pk'], d['fields'] for d in json] 
output = "{" 
output += "success: true" 
output += json.dumps(actual_data) 
output += "}" 
return HttpResponse(output) 
関連する問題