Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Django Queryset安排成一个奇特的DIV布局(模板)_Django_Templates_Html_Django Queryset - Fatal编程技术网

将Django Queryset安排成一个奇特的DIV布局(模板)

将Django Queryset安排成一个奇特的DIV布局(模板),django,templates,html,django-queryset,Django,Templates,Html,Django Queryset,首先,我是Django的新手,正在努力学习,所以请容忍我的长问题 我的应用程序有以下django数据模型。为了清楚起见,我已经编辑并删除了大部分模型 class table1(models.Model): user = models.CharField(max_length=25) filename = models.CharField(max_length=40) def __unicode__(self): return u'%s' % (self

首先,我是Django的新手,正在努力学习,所以请容忍我的长问题

我的应用程序有以下django数据模型。为了清楚起见,我已经编辑并删除了大部分模型

class table1(models.Model):
    user = models.CharField(max_length=25)
    filename = models.CharField(max_length=40)


    def __unicode__(self):
        return u'%s' % (self.user)

class table2(models.Model):

    accession = models.CharField(max_length=50, blank=True)
    version = models.CharField(max_length=50, blank=False)
    exp = models.ForeignKey(table1) 

    def __unicode__(self):
        return u'%s, %s, %s' %(self.accession,self.version)

class table3(models.Model):
    sf_id = models.CharField(max_length=50, blank=False)
    name = models.CharField(max_length=60, blank=False)
    mzml_fk = models.ForeignKey(table2)

    def __unicode__(self):
        return u'%s, %s' %(self.sf_id, self.name)


class table3_1(models.Model):
    ref = models.CharField(max_length=50, blank=False)
    value = models.CharField(max_length=100)
    sf_fk= models.ForeignKey(table3)

    def __unicode__(self):
        return u'%s, %s' %(self.ref, self.value)


class table4(models.Model):
    soft_id = models.CharField(max_length= 45)
    version = models.CharField(max_length=50, blank=False)
    soft_fk = models.ForeignKey(table2)

    def __unicode__(self):
        return u'%s, %s' %(self.soft_id, self.version)


class table4_1(models.Model):
    cvRef = models.CharField(max_length=10, blank=False)
    value = models.CharField(max_length=45, blank=True)
    soft_cv_fk = models.ForeignKey(table4)

    def __unicode__(self):
        return u'%s, %s' %(self.cvRef, self.value)


class Selion(models.Model):
    monoiso = models.FloatField()
    state = models.CharField(max_length= 2)
    sele_fk = models.ForeignKey(table2)

    def __unicode__(self):
        return u'%s, %s' % (self.monoiso,self.state)

class trum(models.Model):
    spec_id = models.CharField(max_length= 60, blank=False)
    spec_index = models.IntegerField(blank=False)
    spec_fk = models.ForeignKey(Selion)

    def __unicode__(self):
        return u'%s, %s, %s, %s' % (self.spec_id,self.spec_index)
注意

  • Selion是迄今为止包含超过100500条记录的最关键的模型
  • 我通过查询Selion(monoiso十进制字段)遍历所有记录的深度
案例1

  • 为了显示赛利昂的所有记录,我的方法似乎太慢了。主页加载时间超过10秒
----鉴于-----

-----模板中----

问题

  • 在主应用程序模板中显示选择记录总数的最有效方式是什么
案例2

  • 用户在数据库的搜索和查询中输入浮点值
  • 我将在Selion(monoiso字段)和加载结果模板中找到输入的值范围
  • 在左DIV容器上的结果模板中,我将显示最低和最高选择范围内的所有匹配值(monoiso字段)
---鉴于----

---模板中----


{myquery%中节的%s}

我一直成功到现在,但不能再前进了

案例3(模板上方)

  • 右DIV块显示所有数据模型字段
  • 右DIV块是水平选项卡,第一个选项卡(Detail1)用于(表1、表2、表3、表4),Detail2用于(trum)
  • 我希望默认情况下RQuery 1处于活动状态并显示table1数据,滚动将显示table2、table3和table4
  • 如果单击左侧的不同链接,则内容应相应更改
我一直在尝试这样做,但无法将queryset链接到不同的选项卡和滚动导航。此外,当我必须过滤掉上面的查询集时,我的性能有问题


请帮我想办法

您不需要对所有“Selion”对象进行水合处理来获得queryset的长度。而是使用Selion.objects.count(),它将返回标量值,而不是100k+个对象


对于选项卡,请查看jQueryUI以获得一个简单的选项卡实现,其中包含一些Ajax回调,以在每个选项卡中显示适当的数据。

@Brandon-count()非常完美。我已经创建了布局(左和右DIV)。但是,在点击左边的链接后,我在右分区(选项卡)中加载内容时遇到了问题。如果你有任何关于我的问题的教程,你能转发给我吗?谢谢你想过让选项卡通过Ajax调用从视图加载内容吗?不,我没想过,我只是在生成上下文变量并在模板中使用它们。你可以这样做。这取决于什么适合你的应用。
allsel = Selion.objects.all()
{{allsel|length}}
myquery = Selion.objects.select_related().filter(monoiso__range=(lowrange, highrange))
<div id="leftcontainer">
     {% for section in myquery %}
       <ul>                     
            <li><a href="#{{section.monoiso}}">{{section.monoiso}}</a></li>
       </ul>
</div>