2010-08-02 65 views
0

我的模型基本上是由外鍵鏈接對象鏈:Django的:爲對象的不同列表一個模板

class Object1(object): 
    object1_id = models.AutoField() 
    object1_name = models.CharField() 

class Object2(object): 
    object2_id = models.AutoField() 
    object2_name = models.CharField() 
    object1 = models.ForeignKey(Object1) 

class Object3(object): 
    object3_id = models.AutoField() 
    object3_name = models.CharField() 
    object2 = models.ForeignKey(Object2) 

我希望能夠顯示每類對象的名單,每行是一個鏈接到兒子對象的列表。如果給出了一個id,那麼該列表應該只包含父對象具有給定id的對象。所以,在我看來,我擁有的功能像這樣的:

def object1(request): 
    liste = Object1.objects.all() 
    return render_to_response('list.html', {'list' : list, 'link' : link})             

def object2(request, id):                
    if id == 0:                 
      list = Object2.objects.all() 
      link = "object3"     
      render_to_response('list.html', {'list' : list, 'link' : link}) 

    else:                    
      liste = Object2.objects.filter(object1 = id)        
      return render_to_response('list.html', {'list':list, 'link':link}) 

的問題是,我不知道如何創建能夠顯示這些列表一個模板:

{% for ele in list %} 
      <li><a href="/{{link}}/{{ele.id}}/">{{ele.name}}</a></li> 
    {% endfor %} 

不因爲對象的id和te名稱在每種情況下都不相同。 順便說一下,如果任何人有想法如何創建一個視圖做工作,這將不勝感激。 謝謝

回答

1

是否有任何理由爲什麼你需要爲不同模型中的相同屬性使用不同的名稱?這似乎沒有必要。事實上,我想知道爲什麼你需要不同的模型。

如果你真的需要做到這一點,我建議你添加屬性到每個模式,以得到他們的名字和id的值:

@property 
def name(self): 
    return self.object1_name 

等等 - 現在你可以簡單地做{{ ele.name }}在模板。

相關問題