如何在Django中查看模型中的数据?

时间:2014-03-14 03:27:22

标签: django django-models django-views

所以我有一个模型文件:

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个俱乐部?

2 个答案:

答案 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]