我们可以在Django中使用用户定义的管理器执行类似SQL的查询吗?
下面是我的模型细节我们可以在Django中使用用户定义的管理器执行类似SQL的查询吗?,django,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
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类内查询的所有结果集。有人知道这件事吗
谢谢 也许你只是在寻找这个:
questions = Question.objects.all()
for question in questions:
votes = question.votes_ques_set.all()
嗨,我有一个疑问。如何将两个对象(问题和投票)相应地组合到一个对象中,并最终组合到对象列表中。您好,WoLpH,是的,但是如何组合问题和投票,因为我需要将其从视图发送到html文件。我的意思是,我期待类似于列表形式的结果集的东西,这样我就可以将它发送到我的html文件中,在那里我将使用它。下面是我的部分代码args=dict(Questions=Questions)t=loader.get_template('main.html')c=Context(args)return-HttpResponse(t.render(c))。在这里,问题应该包含问题对象和作为单个对象连接在一起的相应投票对象。在Django这可能吗?请告知!!因此,一旦这是可能的,那么在我的main.html文件中,我将有一个类似{%if Questions%}{%for item in Questions%}
问题:{{item.qid}}
{{item.Question}投票upx{item.up{Vote}投票downx{item.down{Vote}{%endfor%}{%endif%}如果这是不可能的,有没有办法得到同样的东西。我基本上需要显示所有的问题对象及其对应的投票对象。@Prabakaran Subramanian:您也可以在模板中使用
question.voces\u ques\u set.all
。但你也可以反过来做。对于每个投票问题
对象,您可以使用qid
获得问题
。因此,一些投票问题。qid
会给你这个问题。