django pagination demo

1. a demo for using pagination

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
def listing(request):
contact_list = Contacts.objects.all()
paginator = Paginator(contact_list, 25) # Show 25 contacts per page
page = request.GET.get('page')
try:
contacts = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
contacts = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
contacts = paginator.page(paginator.num_pages)
return render_to_response('list.html', {"contacts": contacts})

django_182

2. get objects length

1
2
cnt = contact_list.count()
cnt = Contacts.objects.all().count()

django multi database

1. 在setting.py中定义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
DATABASES = {
'default': {
'NAME': 'app_data',
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'USER': 'postgres_user',
'PASSWORD': 's3krit'
},
'users': {
'NAME': 'user_data',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': 'priv4te'
}
}

2. 使用using手动选择一个数据库

1
2
>>> u = User.objects.using('legacy_users').get(username='fred')
>>> u.delete() # will delete from the `legacy_users` database

django_182

django models not equal exclude filter

Django != not equal exclude

not equal

1
2
3
user1_progress = models.EvaluationMaterial.objects.filter(
evaluation_task_id=evaluation_task_id).exclude(
user1='-').values('user1').annotate(alloced=Count('user1'))

Django: NOT IN -> exclude(a__in=b_list)

NOT IN

1
2
table1.objects.exclude(id__in =
table2.objects.filter(your_condition).values_list('id', flat=True))

(Django in / not in query)[https://stackoverflow.com/questions/4523282/django-in-not-in-query]