Added ability to register fields to models

This commit is contained in:
Jose Soares 2010-01-27 10:48:09 -05:00
parent 7a0d43732a
commit ff92ac9771
2 changed files with 29 additions and 0 deletions

View file

@ -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
categories/fields.py Normal file
View file

@ -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)