首先,我是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)
注意
案例1
----在视野中-----
allsel = Selion.objects.all()
-----在模板----
{{allsel|length}}
问题
案例2
---在视图中----
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>
我成功到现在,但无法进一步发展。
案例3(模板上方)
我一直在尝试这样做,但无法弄清楚将查询集链接到不同的选项卡和滚动导航。此外,当我必须过滤掉上面的查询集时,我的性能有问题。
请帮我弄清楚如何做到这一点!
答案 0 :(得分:1)
您不需要对所有“Selion”对象进行水合以获取查询集的长度。而是使用Selion.objects.count(),它将返回标量值而不是100k +对象。
对于选项卡,请查看jQueryUI以获取一个简单的选项卡实现,其中包含一些Ajax回调,以在每个选项卡中显示相应的数据。