所以这是场景。我得到user_id并执行一个名为generated的过滤器。我想按检查顺序显示C类的所有值。
这是我的models.py
class A(models.Model):
tob = models.ForeignKey(B)
def something(self, user):
return A.objects.filter(to_b=user)
class B(models.Model):
bid = models.AutoField(primary_key=True)
name = models.CharField(max_length=50)
class C(models.Model):
name = models.CharField(max_length=50)
tobid = models.ForeignKey(B)
check = models.datetimeField()
这是我的views.py:
def generated(request,user_id):
f= A()
p = f.something(user_id)
我可以执行一个for循环来获取C类的所有值。
我从C
获取值的视图 for des in p:
des_list = des.tob.bid
des_list_final = C.objects.filter(tobid = des_list)
但是这里的问题是,每次从B获取一个id并对C执行过滤。但这不会通过检查给出C顺序的值。知道怎么克服这个吗?
答案 0 :(得分:0)
我希望按照检查顺序显示C类的所有值。
C.objects.filter(tobid__id__in=[des.tob.bid.pk for des in p]).order_by('-check')
如果您想永久设置订单,请使用ordering
:
class C(models.Model):
class Meta:
ordering = ['-check']