У меня такая же головоломка, как представленная в этом вопросе, но применимая к Django auth.User.
У меня есть эта прокси-модель:
class OrderedUser(User):
def __unicode__(self):
return self.get_full_name()
class Meta:
proxy=True
ordering=["first_name", "last_name"]
И некоторые из моих других моделей используют OrderedUser
вместо django.contrib.auth.models.User
как типы полей.
В моих представлениях я затем использую request.user
для заполнения поля и - как и ожидалось - получаю сообщение об ошибке:
'Cannot assign "<User...>": <field> must be a "OrderedUser" instance'
Я мог бы просто сделать OrderedUser.objects.get(request.user.id)
, но это дополнительный удар по базе данных.
Итак, как преобразовать базовый класс модели в свой прокси-класс?