Hi,
(Django version 0.97-pre-SVN-7633)
I am trying to use a custom modelfield. When I try to ad an entry in
the admin, i get:
---------------------------------------------------------------
TypeError at /admin/klanten/klant/add/
__init__() got an unexpected keyword argument 'is_required'
Traceback:
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/
site-packages/django/core/handlers/base.py" in get_response
82. response = callback(request, *callback_args,
**callback_kwargs)
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/
site-packages/django/contrib/admin/views/decorators.py" in _checklogin
62. return view_func(request, *args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/
site-packages/django/views/decorators/cache.py" in _wrapped_view_func
44. response = view_func(request, *args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/
site-packages/django/contrib/admin/views/main.py" in add_stage
253. manipulator = model.AddManipulator()
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/
site-packages/django/db/models/manipulators.py" in __init__
70.
self.fields.extend(f.get_manipulator_fields(self.opts, self,
self.change))
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/
site-packages/django/db/models/fields/__init__.py" in
get_manipulator_fields
352. return [man(field_name=field_names[i], **params) for i,
man in enumerate(field_objs)]
Exception Type: TypeError at /admin/klanten/klant/add/
Exception Value: __init__() got an unexpected keyword argument
'is_require
-------------------------------------------------------------------------
the modelfield is defined as:
-----------------------------------------------------------------------------
from django.db.models import *
from django.contrib.localflavor.nl import forms as nlforms
from django.core import validators
from django.newforms.fields import EMPTY_VALUES
from django.utils.encoding import smart_unicode
from django import oldforms
import re
phone_re = re.compile('^\+?\d+$')
class NLPhoneNumberField(Field):
def get_internal_type(self):
return "CharField"
def db_type(self):
return "char(16)"
def to_python(self, value):
if field_data in EMPTY_VALUES:
return u''
phone_nr = re.sub('[\-\s\(\)]', '', value)
if not phone_re.search(p):
raise validation.ValidationError('Ongeldig telefoon
nummer. Voer (evt. +<landcode>) 10 cijfers in.')
if len(phone_nr) == 12:
if phone_nr[:3] == '+31':
phone_nr = phone_nr[3:]
else:
return phone_nr
elif len(phone_nr) != 10:
raise validation.ValidationError('Ongeldig telefoon
nummer. Voer (evt. +<landcode>) 10 cijfers in.')
if phone_nr[0] == '6':
return '06 ' + phone_nr[1:]
else:
return '%s %s' % (phone_nr[:3],phone_nr[3:])
def get_manipulator_field_objs(self):
return [nlforms.NLPhoneNumberField]
def formfield(self, **kwargs):
defaults = {'form_class': nlforms.NLPhoneNumberField,
'max_length':16}
defaults.update(kwargs)
return super(NLPhoneNumberField, self).formfield(**defaults)
------------------------------------------------------------------------
The field is then used in a model without any arguments.
The problem disappears when I change:
------------------------------------------------------------------------
def get_manipulator_field_objs(self):
return [nlforms.NLPhoneNumberField]
------------------------------------------------------------------------
to:
------------------------------------------------------------------------
def get_manipulator_field_objs(self):
return [oldforms.TextField]
------------------------------------------------------------------------
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---