38 lines
936 B
Python
38 lines
936 B
Python
from __future__ import unicode_literals
|
|
|
|
from django.db import models
|
|
from django.utils import timezone
|
|
from django.utils.encoding import python_2_unicode_compatible
|
|
|
|
|
|
class Tag(models.Model):
|
|
name = models.CharField(max_length=255)
|
|
|
|
|
|
@python_2_unicode_compatible
|
|
class Author(models.Model):
|
|
name = models.CharField(max_length=100, help_text='Use both first and last names.',
|
|
unique=True)
|
|
|
|
class Meta:
|
|
ordering = ['name']
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|
|
@python_2_unicode_compatible
|
|
class Book(models.Model):
|
|
title = models.CharField(max_length=200)
|
|
pages = models.IntegerField(default=0)
|
|
author = models.ForeignKey(Author, null=True, blank=True)
|
|
pubdate = models.DateTimeField()
|
|
tags = models.ManyToManyField(Tag)
|
|
|
|
class Meta:
|
|
ordering = ['-pubdate', 'title']
|
|
unique_together = ['title', 'author']
|
|
|
|
def __str__(self):
|
|
return self.title
|