diff options
author | Mike Crute <mcrute@gmail.com> | 2010-12-30 01:07:57 -0500 |
---|---|---|
committer | Mike Crute <mcrute@gmail.com> | 2010-12-30 01:07:57 -0500 |
commit | 5fd79049673e5cd27dc2de828cf7c6d2560aea1f (patch) | |
tree | abda560aac56d75e682fb5c449c2b7989dc5e4c5 | |
parent | deb2f6420e4f44f6d5d731abbd3340c258a0cc52 (diff) | |
download | greenbox-5fd79049673e5cd27dc2de828cf7c6d2560aea1f.tar.bz2 greenbox-5fd79049673e5cd27dc2de828cf7c6d2560aea1f.tar.xz greenbox-5fd79049673e5cd27dc2de828cf7c6d2560aea1f.zip |
Cleaning up model imports and adding slug field
-rw-r--r-- | greenbox/recipe/models.py | 47 |
1 files changed, 23 insertions, 24 deletions
diff --git a/greenbox/recipe/models.py b/greenbox/recipe/models.py index b4925cd..8463447 100644 --- a/greenbox/recipe/models.py +++ b/greenbox/recipe/models.py | |||
@@ -1,9 +1,6 @@ | |||
1 | from django.contrib import admin | ||
2 | from django.contrib.admin import sites as admin_sites | ||
3 | from django.contrib.admin import ModelAdmin, TabularInline | ||
4 | from django.db import models | 1 | from django.db import models |
5 | from django.db.models import CharField, IntegerField, TextField, FloatField | 2 | from django.contrib import admin |
6 | from django.db.models import ForeignKey | 3 | from django.db.models import fields |
7 | 4 | ||
8 | 5 | ||
9 | class Unit(models.Model): | 6 | class Unit(models.Model): |
@@ -11,8 +8,8 @@ class Unit(models.Model): | |||
11 | class Meta: | 8 | class Meta: |
12 | ordering = ('name',) | 9 | ordering = ('name',) |
13 | 10 | ||
14 | name = CharField(max_length=100) | 11 | name = fields.CharField(max_length=100) |
15 | abbreviation = CharField(max_length=10, blank=True, null=True) | 12 | abbreviation = fields.CharField(max_length=10, blank=True, null=True) |
16 | 13 | ||
17 | def __unicode__(self): | 14 | def __unicode__(self): |
18 | return "{0} ({1})".format(self.name, self.abbreviation) | 15 | return "{0} ({1})".format(self.name, self.abbreviation) |
@@ -23,13 +20,14 @@ class Recipe(models.Model): | |||
23 | class Meta: | 20 | class Meta: |
24 | ordering = ('title',) | 21 | ordering = ('title',) |
25 | 22 | ||
26 | title = CharField(max_length=100) | 23 | title = fields.CharField(max_length=100) |
27 | description = TextField(blank=True, null=True) | 24 | slug = fields.SlugField(max_length=150) |
28 | servings = IntegerField(blank=True, null=True) | 25 | description = fields.TextField(blank=True, null=True) |
29 | instructions = TextField() | 26 | servings = fields.IntegerField(blank=True, null=True) |
30 | oven_temp = IntegerField(blank=True, null=True) | 27 | instructions = fields.TextField() |
31 | cook_time = IntegerField(blank=True, null=True) | 28 | oven_temp = fields.IntegerField(blank=True, null=True) |
32 | prep_time = IntegerField(blank=True, null=True) | 29 | cook_time = fields.IntegerField(blank=True, null=True) |
30 | prep_time = fields.IntegerField(blank=True, null=True) | ||
33 | 31 | ||
34 | 32 | ||
35 | def __unicode__(self): | 33 | def __unicode__(self): |
@@ -41,7 +39,7 @@ class Ingredient(models.Model): | |||
41 | class Meta: | 39 | class Meta: |
42 | ordering = ('name',) | 40 | ordering = ('name',) |
43 | 41 | ||
44 | name = CharField(max_length=100, unique=True) | 42 | name = fields.CharField(max_length=100, unique=True) |
45 | 43 | ||
46 | def __unicode__(self): | 44 | def __unicode__(self): |
47 | return self.name | 45 | return self.name |
@@ -49,35 +47,36 @@ class Ingredient(models.Model): | |||
49 | 47 | ||
50 | class RecipeIngredient(models.Model): | 48 | class RecipeIngredient(models.Model): |
51 | 49 | ||
52 | ingredient = ForeignKey(Ingredient) | 50 | ingredient = models.ForeignKey(Ingredient) |
53 | units = ForeignKey(Unit) | 51 | units = models.ForeignKey(Unit) |
54 | quantity = FloatField() | 52 | quantity = fields.FloatField() |
55 | recipe = ForeignKey(Recipe) | 53 | recipe = models.ForeignKey(Recipe) |
56 | 54 | ||
57 | def __unicode__(self): | 55 | def __unicode__(self): |
58 | return "{0} in {1}".format(self.ingredient.name, self.recipe.title) | 56 | return "{0} in {1}".format(self.ingredient.name, self.recipe.title) |
59 | 57 | ||
60 | 58 | ||
61 | class UnitAdmin(ModelAdmin): | 59 | class UnitAdmin(admin.ModelAdmin): |
62 | 60 | ||
63 | list_display = ('name', 'abbreviation') | 61 | list_display = ('name', 'abbreviation') |
64 | ordering = ('name',) | 62 | ordering = ('name',) |
65 | 63 | ||
66 | 64 | ||
67 | class IngredientInline(TabularInline): | 65 | class IngredientInline(admin.TabularInline): |
68 | 66 | ||
69 | model = RecipeIngredient | 67 | model = RecipeIngredient |
70 | extra = 12 | 68 | extra = 12 |
71 | 69 | ||
72 | 70 | ||
73 | class RecipeAdmin(ModelAdmin): | 71 | class RecipeAdmin(admin.ModelAdmin): |
74 | 72 | ||
75 | list_display = ('title',) | 73 | list_display = ('title',) |
76 | inlines = (IngredientInline,) | 74 | inlines = (IngredientInline,) |
77 | search_fields = ('title',) | 75 | search_fields = ('title',) |
76 | prepopulated_fields = { "slug": ("title",) } | ||
78 | 77 | ||
79 | 78 | ||
80 | class IngredientAdmin(ModelAdmin): | 79 | class IngredientAdmin(admin.ModelAdmin): |
81 | 80 | ||
82 | list_display = ('name',) | 81 | list_display = ('name',) |
83 | search_fields = ('name',) | 82 | search_fields = ('name',) |
@@ -87,5 +86,5 @@ try: | |||
87 | admin.site.register(Unit, UnitAdmin) | 86 | admin.site.register(Unit, UnitAdmin) |
88 | admin.site.register(Ingredient, IngredientAdmin) | 87 | admin.site.register(Ingredient, IngredientAdmin) |
89 | admin.site.register(Recipe, RecipeAdmin) | 88 | admin.site.register(Recipe, RecipeAdmin) |
90 | except admin_sites.AlreadyRegistered: | 89 | except admin.sites.AlreadyRegistered: |
91 | pass | 90 | pass |