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 "'unp...@framailx.de'": "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 django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
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