Добрый день.

Честно скажу, сделать кошерно, переопределив User в самом начале, как рекоммендуется, у меня не было возможности, база уже заполнена.

Создал приложение users. Переопределил django.contrib.auth.User через OneToOneField и расширил поля в админке. Далее я обращаюсь только к нему..

Есть

model.py

# from django.contrib.auth.models import User
from users.models import Users

class Article(models.Model):
   - - -
    user = models.ForeignKey(Users, verbose_name=u'автор поста', blank=True, null=True)

admin.py

 from .models import *
     - - -
 class ArticleAdmin(AdminImageMixin, admin.ModelAdmin):
     - - - 
   def save_model(self, request, obj, form, change):
    if form.is_valid():
        if not request.user.is_superuser or not form.cleaned_data['user']:
            obj.user = request.user
            obj.save()
        elif form.cleaned_data['user']:
            obj.user = form.cleaned_data['user']
            obj.save()

При сохранении поста, выдает:

ValueError at /admin/article/article/add/
Cannot assign "<SimpleLazyObject: <User: alex>>": "Article.user" must be a "Users" instance.

Руководствовался

http://djbook.ru/examples/4/

https://habrahabr.ru/sandbox/22805/

Что я делаю не так? Спасибо!

===

И еще вопрос, не по теме..

При импорте своих созданных приложений, в свои другие, а также импорте своей модели в temlatetags я всегда делал так: from myapp.models import MyClass

PyCharm подсвечивает их красным, мол ошибка. Почему, разве так не правильно? На работоспособность это не влияет. Но ошибка есть ошибка… Если обращение к приложениям, установленных через pip, то все корректно...

Может кто сталкивался?

Еще раз спасибо!