我们可以使用Django中的用户定义管理器执行类似SQL的查询吗?

时间:2010-11-12 23:16:43

标签: django

以下是我的模型详情

class QuesManager(db.Manager):
    def with_counts(self):
        from django.db import connection
        cursor = connection.cursor()
        cursor.execute("""
            SELECT Q.question, Q.title, Q.qid, V.up_qid, V.down_qid
            FROM Question Q, Votes_ques V
            WHERE Q.qid=V.qid
            ORDER BY 3 DESC""")
        result_list = []
        for row in cursor.fetchall():
            p = self.model(question=row[0], title=row[1], up_vote=row[2], down_vote=row[3])
            result_list.append(p)
        return result_list

class dummy(db.Model):
    obj = QuesManager()

class Question(db.Model):
    userid = db.CharField(max_length=50)
    posted = db.DateTimeField(auto_now=True)
    question = db.TextField(max_length=500)
    qid = db.AutoField(primary_key=True)
    title = db.TextField(max_length=80)
    tags = db.ManyToManyField('Tags')

class Votes_ques(db.Model):
    qid = db.ForeignKey('Question')
    up_qid = db.IntegerField()
    down_qid = db.IntegerField()

from mysite.answers.models import dummy
from mysite.answers.models import Votes_ques
from mysite.answers.models import Question

是否Vote = dummy.obj.all()将在QuesManager类中提供查询的所有结果集。任何人都对此有任何想法...

谢谢!

1 个答案:

答案 0 :(得分:1)

也许你只是在寻找这个:

questions = Question.objects.all()
for question in questions:
    votes = question.votes_ques_set.all()