mirror of
https://github.com/jazzband/django-categories.git
synced 2026-03-16 22:30:24 +00:00
Added ability to register fields to models
This commit is contained in:
parent
7a0d43732a
commit
ff92ac9771
2 changed files with 29 additions and 0 deletions
|
|
@ -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
11
categories/fields.py
Normal 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)
|
||||
Loading…
Reference in a new issue