Можем ли мы выполнить SQL-подобный запрос, используя пользовательский менеджер в Django? - PullRequest
0 голосов
/ 13 ноября 2010

Ниже приведены сведения о моей модели

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 Ответ

1 голос
/ 13 ноября 2010

Возможно, вы просто ищете это:

questions = Question.objects.all()
for question in questions:
    votes = question.votes_ques_set.all()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...