Hi Jani, Thanks for the link. I was aware of this link and actually followed the steps when I started the project. I tried using model but then found out when i need to query a join, it doesn't seem to work unless there's a foreign key between the two models, however, given it's a legacy database, i can't touch the schema at all. Is it possible to query join results with managed=False?
Thanks On Thursday, June 15, 2017 at 11:31:42 PM UTC-7, Jani Tiainen wrote: > > Hi, > > Even you do have legacy database, you can use unmanaged models and then > leverage full power of ORM [1]. > > Just create models and in their Meta set managed = False and there you go. > > And what comes to paging - you need to somehow pass offset and limit to > your query. > > [1] https://docs.djangoproject.com/en/1.11/howto/legacy-databases/ > > On 16.06.2017 02:05, Kevin Yu wrote: > > Hi All, > > I am using raw sql to connect to database. The reason we used raw sql > instead of the Django model is because the database is legacy and is being > shared by multiple applications... > > I have one use case that I'm struggling right now. Basically I have a page > that fetch more than 1000 results. My query is like this: > > cursor = connection.cursor() > cursor.execute(''' > SELECT br.id, br.name, br.created_at, br.updated_at, > br.branchpoint_str, br.source > FROM branches as br > LEFT JOIN branches_projects as bp > ON br.id = bp.branch_id > WHERE bp.project_id = "%s" AND source != "other" > ORDER BY updated_at DESC > ''', [int(project_id)] > ) > > Then in my template, I have this: > {% for br in special_branches %} > > <tr class="{% if forloop.counter|divisibleby:2 %}even{% else %}odd{% > endif %} highlightable" > link="/files/{{build.image_path}}/build{{build.build_number}}/"> > <td class="selectable">{{br.name}}</td> > <td class="selectable">{{br.branchpoint}}</td> > <td class="selectable center">{{ br.source|upper }}</td> > <td class="selectable center">{{br.updated_at}} > <td class="selectable center">{{br.built_at}}</td> > </tr> > {% endfor %} > > The current problem is this would create a very long page... I am > wondering how to approach this problem so that I can have different page on > the template, and say 100 result per page, when i click the second page, > then django will fetch result 100-200. > > Thanks! > -- > 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 [email protected] <javascript:>. > To post to this group, send email to [email protected] > <javascript:>. > Visit this group at https://groups.google.com/group/django-users. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/f6a3df97-8218-4fb8-b200-f4535797e135%40googlegroups.com > > <https://groups.google.com/d/msgid/django-users/f6a3df97-8218-4fb8-b200-f4535797e135%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > > > -- > Jani Tiainen > > -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/7e4a44fc-e5ce-4562-8b75-09ba065e34f5%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

