0

我有一个没有主键的模型。它具有其他型号的 id。我想打电话给 iid_ id。

例如 iid_id = 1。

有 21 行编号为 1。我想抓取所有行并将它们显示在 HTML 表上。

该模型:

class QryDescChar(models.Model):
   iid_id = models.IntegerField()
   cid_id = models.IntegerField()
   cs = models.CharField(max_length=10)
   cid = models.IntegerField()
   charname = models.CharField(max_length=50)
   class Meta:
       db_table = u'qry_desc_char'

这是模型的 SQL:

CREATE VIEW qry_desc_char as
SELECT  tbl_desc.iid_id,
        tbl_desc.cid_id,
        tbl_desc.cs,
        tbl_char.cid,
        tbl_char.charname
FROM tbl_desc, tbl_char 
WHERE tbl_desc.cid_id = tbl_char.cid;

风景:

def itemdetail(request, iid):
     i = get_object_or_404(Item, pk=iid) #this is from another model
     row = ????????

     return render_to_response('tbl/itemdetail.html', {'item': i, 'row': row})

我已经尝试了所有方法,但无法显示 HTML 上的行。这可能是一个愚蠢的问题。我是 Django 的新手,无法完成这项工作。

4

2 回答 2

1

如果行是项目的子对象,只需执行此操作..

row = i.qrydescchar_set.all()

假设您的项目模型具有与 QryDescChar 指示的关系

于 2009-11-05T00:26:02.183 回答
0

我不确定我是否理解您的问题...您是否要获取所有 iid_id 等于您拥有的 Item 主键的 QryDescChar 对象?像这样的东西:

#from somewhere.models import QryDescChar
def itemdetail(request, iid):
    i = get_object_or_404(Item, pk=iid) #this is from another model
    row = QryDescChar.objects.filter(iid_id=i.pk) 

    return render_to_response('tbl/itemdetail.html', {'item': i, 'row': row})

然后您可以遍历模板中的行:

<table>
  {% for obj in row %}
    <tr>
      <td>{{ obj.cs }}</td>
      <td>{{ obj.charname }}</td>
      {# whatever you want to display in a row #}
    </tr>
  {% endfor %}
</table>
于 2009-11-05T08:30:47.587 回答