0

I am new in django, I done a lot of tutorials, usually I am learning by example. Here is my models.py file. So, I made a querysets, but how to make a view file?

I need views.py file part for querysets for filtering data. But I dont know hopw to put it in views.

What is the simplest way? Do I need to create a forms.py file for it?

So, maybe you know how to do that?

from django.db import models
import datetime


class PeopleQuerySet(models.query.QuerySet):
    def active(self):
        return self.filter(active=True)

    def get_sex(self, sex):
        return self.filter(sex=sex)

    def get_age(self, year1, year2):
        return self.filter(year__range=(year1, year2))

    def get_city(self, city):
        return self.filter(city=city)

class PeopleManager(models.Manager):

    def get_queryset(self):
        return PeopleQuerySet(self.model, using=self._db)

    def active(self):
        return self.get_queryset().active()

    def get_sex(self, sex):
        return self.get_queryset().get_sex(sex)


    def get_age(self):
        return self.get_queryset.get_age(year1, year2)

    def get_city(self):
        return self.get_queryset().get_city(city)


class People(models.Model):

    SEX_CHOICES = (
    ('M', 'Vyras'),
    ('F', 'Moteris'),
    )

    CITY_CHOICES = (
    ('Kaunas', 'Kaunas'),
    ('Klaipeda', 'Klaipeda'),
    ('Vilnius', 'Vilnius'),
    )


    YEAR_CHOICES = []
    for y in range(16, 100):
        YEAR_CHOICES.append((y, y))


    name = models.CharField(max_length=111)
    sex = models.CharField(max_length=1, choices=SEX_CHOICES)
    year = models.IntegerField(('year'), max_length=4, choices=YEAR_CHOICES, default=16)
    city =  models.CharField(max_length=111, choices=CITY_CHOICES)
    email = models.EmailField()
    phone = models.CharField(max_length=11)
    slug = models.SlugField()
    active = models.BooleanField(default=True)
    updated = models.DateTimeField(auto_now=True, auto_now_add=False)

    objects = PeopleManager()

    def __unicode__(self):
        return self.name

1 Answers1

0

I think you need something like this People.objects.filter(sex='Male').

Check it here at django docs.

And also here is a good example, like:

Blog.objects.filter(entry__headline__contains='Lennon',
    entry__pub_date__year=2008)

And check out this stackoverflow question.

Community
  • 1
  • 1
Julia
  • 397
  • 3
  • 14