2010-08-02 62 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 }}在模板。

相关问题