我的模型基本上是由外键链接的对象链:
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名称在每种情况下都不同。 顺便说一句,如果有人想知道如何创建一个视图来完成这项工作,我们将不胜感激。 感谢
答案 0 :(得分:1)
您是否有任何理由需要为不同模型中的相同属性设置不同的名称?这似乎没必要。事实上,我想知道为什么你需要不同的模型。
如果您确实需要这样做,我建议您为每个模型添加属性以获取其名称和ID值:
@property
def name(self):
return self.object1_name
依此类推 - 现在您只需在模板中执行{{ ele.name }}
。