class PollManager(models.Manager):
def with_counts(self):
from django.db import connection
cursor = connection.cursor()
cursor.execute("""
SELECT p.id, p.question, p.poll_date, COUNT(*)
FROM polls_opinionpoll p, polls_response r
WHERE p.id = r.poll_id
GROUP BY 1, 2, 3
ORDER BY 3 DESC""")
result_list = []
for row in cursor.fetchall():
p = self.model(id=row[0], question=row[1], poll_date=row[2])
p.num_responses = row[3]
result_list.append(p)
return result_list
class OpinionPoll(models.Model):
question = models.CharField(max_length=200)
poll_date = models.DateField()
objects = PollManager()
class Response(models.Model):
poll = models.ForeignKey(Poll)
person_name = models.CharField(max_length=50)
response = models.TextField()
################################################
class Counter(models.Manager):
def something(self):
from django.db import connection
cursor = connection.cursor()
cursor.execute("""
SELECT * , COUNT( * )
FROM profile_sample
GROUP BY name
""")
results = []
for i in cursor.fetchall():
p = Sample()
p.id=i[0]
p.name=i[1]
p.coun_t = i[2]
results.append(p)
return results
class Sample(models.Model):
objects = Counter()
name = models.CharField(max_length=30)
##################################################
class Counter(models.Manager):
def something(self):
from django.db import connection
cursor = connection.cursor()
cursor.execute("""
SELECT * , COUNT( * )
FROM profile_sample
GROUP BY name
""")
results = []
for i in cursor.fetchall():
p = self.model(id=i[0],name=i[1])
p.coun_t = i[2]
results.append(p)
return results
class Sample(models.Model):
objects = Counter()
name = models.CharField(max_length=30)
################################################
#View
@render_to('test.html')
def test(request):
lam = Sample.objects.something()
return {'lam':lam}
###############################################
#template
{% for i in lam %}
{{ i.name }} {{ i.coun_t }}
{% endfor %}