Skip to content

Commit

Permalink
Added ability to register fields to models
Browse files Browse the repository at this point in the history
  • Loading branch information
Jose Soares committed Jan 27, 2010
1 parent 7a0d437 commit ff92ac9
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
18 changes: 18 additions & 0 deletions categories/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import fields
import models

from django.db.models import FieldDoesNotExist

def register_m2m(model, field_name, extra_params={}):
return _register(model, field_name, extra_params, fields.CategoryM2MField)


def register_fk(model, field_name, extra_params={}):
return _register(model, field_name, extra_params, fields.CategoryFKField)

def _register(model, field_name='category', extra_params={}, field=fields.CategoryFKField):
opts = model._meta
try:
opts.get_field(field_name)
except FieldDoesNotExist:
field(**extra_params).contribute_to_class(model, field_name)
11 changes: 11 additions & 0 deletions categories/fields.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from django.db.models import ForeignKey, ManyToManyField
from categories.models import Category

class CategoryM2MField(ManyToManyField):
def __init__(self, **kwargs):
super(CategoryM2MField, self).__init__(to=Category, **kwargs)


class CategoryFKField(ForeignKey):
def __init__(self, **kwargs):
super(CategoryFKField, self).__init__(to=Category, **kwargs)

0 comments on commit ff92ac9

Please sign in to comment.