所以我有一个模型文件:
import datetime
from django.db import models
class Organization(models.Model):
name = models.CharField(max_length=128, unique=True);
description = models.TextField(blank=True);
location = models.CharField(max_length=256, blank=True);
contact_email = models.EmailField(max_length=128, unique=True);
org_type = models.ForeignKey('OrganizationType');
created_at = models.DateTimeField(editable=False);
updated_at = models.DateTimeField();
def save(self, *args, **kwargs):
''' On save, update timestamps '''
datetime_now = datetime.datetime.now();
# If there's no ID, it's new
if not self.id:
self.created_at = datetime_now;
# Always update the modified at value
self.modified_at = datetime_now;
return super(User, self).save(*args, **kwargs);
class Meta:
app_label = 'bc';
视图文件Organization.py:
from django.shortcuts import render, redirect
from django.contrib import auth
from django.core.context_processors import csrf
from BearClubs.bc.forms.user import UserSignUpForm
from BearClubs.bc.models.organization import Organization
def directory(request):
first_50_clubs = [];
# get 50 clubs here
return render(request, 'directory.html' {'clubs': first_50_clubs});
我真的很喜欢Django,所以请原谅我。我如何在Organization.py视图文件的first_50_clubs中获得前50个俱乐部?
答案 0 :(得分:3)
根据documentation,你可以使用列表切片:
使用Python的数组切片语法的子集来限制QuerySet 达到一定数量的结果。这相当于SQL的LIMIT 和OFFSET条款。
def directory(request):
first_50_clubs = Organization.objects.all()[:50]
return render(request, 'directory.html' {'clubs': first_50_clubs})
另外,你不需要在python的代码行末尾放置分号。
希望有所帮助。
答案 1 :(得分:1)
您可以通过以下查询在first_50_clubs中获得前50个俱乐部:
first_50_clubs = Organization.objects.all().order_by('id')[:50]
它会在插入时获取记录。
如果您想要上次插入50 记录,请在-
中使用order_by
。喜欢:
first_50_clubs = Organization.objects.all().order_by('-id')[:50]