Monday, April 1, 2013

Re: (1242, 'Subquery returns more than 1 row')

Hi

As per my view your client query is returning more than one rows from your database.
Suppose your job = 1 which you are getting from your Report table and the query ( Job.objects.all().filter(
client=job)......)fetches two or more than two records from your 'job' table.

Now there can be two scenarios:-
1.You are looking for a single record to be displayed after executing  (Job.objects.all().filter(client=job)......)
In this case you need to use filter query like Job.objects.all().filter(Q(client=job)&Q(something=something)&Q(something=something)...) which will give you a unique row as per your filter criteria.

2.You are looking for multiple records to be displayed:-
In this case you need to add a for after your query.
Like
 table1=[]
 client = Job.objects.all().filter(client=job)
 for i in client:
    client__client__first_name = i.first_name
    client__client__middle_name = i.middle_name
    ...
    ...
    ...
   
    table1.append({"client__client__first_name":client__client__first_name," client__client__middle_name": client__client__middle_name,.........})


 temp = {'client':table1, 'cubee':cubee, 'Head':Head, 'organisation':organisation,'department':department,}


I hope this might solve your problem.

-Siddharth





On Mon, Apr 1, 2013 at 2:51 AM, Satinderpal Singh <satinder.goraya91@gmail.com> wrote:
I have the following error in my project

(1242, 'Subquery returns more than 1 row')

my views are as given below

def result_cube(request):
        Id = Cube.objects.aggregate(Max('Report_id'))
        ID = Id['Report_id__max']
        cubee = Cube.objects.filter(Report_id = ID)
        Id = Report.objects.aggregate(Max('id'))
        ID = Id['id__max']
        Head = Report.objects.filter(id = ID)
        organisation = Organisation.objects.all().filter(id = 1)
        department = Department.objects.all().filter(id = 1)

        Id = Report.objects.aggregate(Max('job'))
        ID = Id['job__max']
        job = Report.objects.filter(job = ID)

        client =
Job.objects.all().filter(client=job).values('client__client__first_name',
        'client__client__middle_name', 'client__client__last_name',
        'client__client__address', 'client__client__city', 'date',
'letter_no', 'letter_date')

        temp = {'client':client, 'cubee':cubee, 'Head':Head,
'organisation':organisation,'department':department,}
        return render_to_response('report/cube.html',
dict(temp.items() + tmp.items()),
        context_instance=RequestContext(request))


Error during template rendering

In template /home/satinder/Automation/templates/report/header.html,
error at line 12

2 {% load i18n %}
3 <html>
4 {% block content %}
5 <body>
6 {% for Heads in Head %}
7 <table width="100%"><tr>
8 <td align="left"><a>No.GNDEC/TCC/R/{{Heads.job_id}}</td><td
align="right"><a>Dated{{Heads.dispatch_report_date}}</a></td>
9 </tr></table>
10 <!-- <p><b>Job no:</b><a style="padding-left:30px;
position:absolute">{{Heads.job_no}}</a></p>
11 --> <p>To,</p>
12 {% for add in client %}
13 <p> {{ add.client__client__first_name}} {{
add.client__client__middle_name}}
{{add.client__client__last_name}}</p>
14 <p> {{add.client__client__address}}</p>
15 <p>{{ add.client__client__city}}</p>
16 {% endfor %}
17

Can anybody help me to solve this error.


--
Satinderpal Singh
http://devplace.in/~satinder/wordpress/
http://satindergoraya.blogspot.in/
http://satindergoraya91.blogspot.in/

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.



--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

No comments:

Post a Comment