While upgrading from 1.9 to 1.11, ForwardManyToOneDescriptor.__set__()
tries to assign a string (description of the related instance) to the related 
user name field
of user model.

class AbstractEmailUser(AbstractBaseUser, PermissionsMixin, 
FieldlistForDetailTemplateMixin):
    localemail = models.OneToOneField('Mailbox', verbose_name=_('Local E-mail'),
            related_name='localemail', db_column='localemail',
            editable=('UR', 'UE', 'UL'))
        
    objects = UserManager()
    
    USERNAME_FIELD = 'localemail'
    REQUIRED_FIELDS = []
    
    class Meta:
        abstract = True
        ordering = ['localemail']
    
    def get_username(self):
       return getattr(self, self.USERNAME_FIELD)

class Mailbox(models.Model):
    id = models.AutoField(primary_key=True)
    localpart = models.CharField(_('Localpart'), max_length=40)
    localdomainfk = models.ForeignKey(Localdomain,  verbose_name=_('Domain'), 
db_column='localdomainfk', editable=('AL',))
        …
        
    def __str__(self):
        return self.localpart+ '@'+self.localdomainfk.name


Internal Server Error: /admin/erdb/account/19/change/
Traceback (most recent call last):
  File "...python3.5/site-packages/django/core/handlers/exception.py", line 41, 
in inner
    response = get_response(request)
  File "...python3.5/site-packages/django/core/handlers/base.py", line 249, in 
_legacy_get_response
    response = self._get_response(request)
  File "...python3.5/site-packages/django/core/handlers/base.py", line 187, in 
_get_response
    response = self.process_exception_by_middleware(e, request)
  File "...python3.5/site-packages/django/core/handlers/base.py", line 185, in 
_get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File 
"/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/contextlib.py",
 line 30, in inner
    return func(*args, **kwds)
  File "...python3.5/site-packages/django/contrib/admin/options.py", line 551, 
in wrapper
    return self.admin_site.admin_view(view)(*args, **kwargs)
  File "...python3.5/site-packages/django/utils/decorators.py", line 149, in 
_wrapped_view
    response = view_func(request, *args, **kwargs)
  File "...python3.5/site-packages/django/views/decorators/cache.py", line 57, 
in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "...python3.5/site-packages/django/contrib/admin/sites.py", line 224, in 
inner
    return view(request, *args, **kwargs)
  File "...python3.5/site-packages/django/contrib/admin/options.py", line 1511, 
in change_view
    return self.changeform_view(request, object_id, form_url, extra_context)
  File "...python3.5/site-packages/django/utils/decorators.py", line 67, in 
_wrapper
    return bound_func(*args, **kwargs)
  File "...python3.5/site-packages/django/utils/decorators.py", line 149, in 
_wrapped_view
    response = view_func(request, *args, **kwargs)
  File "...python3.5/site-packages/django/utils/decorators.py", line 63, in 
bound_func
    return func.__get__(self, type(self))(*args2, **kwargs2)
  File "...python3.5/site-packages/django/contrib/admin/options.py", line 1408, 
in changeform_view
    return self._changeform_view(request, object_id, form_url, extra_context)
  File "...python3.5/site-packages/django/contrib/admin/options.py", line 1440, 
in _changeform_view
    if form.is_valid():
  File "...python3.5/site-packages/django/forms/forms.py", line 183, in is_valid
    return self.is_bound and not self.errors
  File "...python3.5/site-packages/django/forms/forms.py", line 175, in errors
    self.full_clean()
  File "...python3.5/site-packages/django/forms/forms.py", line 386, in 
full_clean
    self._post_clean()
  File "...python3.5/site-packages/django/forms/models.py", line 408, in 
_post_clean
    self.instance.full_clean(exclude=exclude, validate_unique=False)
  File "...python3.5/site-packages/django/db/models/base.py", line 1234, in 
full_clean
    self.clean()
  File "...python3.5/site-packages/django/contrib/auth/base_user.py", line 77, 
in clean
    setattr(self, self.USERNAME_FIELD, 
self.normalize_username(self.get_username()))
  File 
"...python3.5/site-packages/django/db/models/fields/related_descriptors.py", 
line 216, in __set__
    self.field.remote_field.model._meta.object_name,
ValueError: Cannot assign "'[email protected]'": "Account.localemail" must be 
a "Mailbox" instance.
[21/Aug/2017 16:08:37] "POST /admin/erdb/account/19/change/ HTTP/1.1" 500 166385

Any help to resolve this appreciated,
Axel
---
PGP-Key:29E99DD6  ☀  computing @ chaos claudius

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/E8A00FB0-2BBD-48FF-B51D-7B22F347F7B9%40Chaos1.DE.
For more options, visit https://groups.google.com/d/optout.

Reply via email to