Есть юзер:from django.contrib.auth.models import UserТаблица залогиневания через соц сети:from django_ulogin.models import ULoginUserТаблица с информацией о юзере:from users.models import UserInfoСвязаны они между собой:UserInfomodels.ForeignKey(ULoginUser)ULoginUsermodels.ForeignKey(User)То есть, когда я в шаблоне отображаю юзера и чтобы вывести инфу о нем с вспомогательной таблицы UserInfo мне нужно пройти к ней через таблицу ULoginUser.Наглядно/схематично: User.ULoginUser.UserInfo.fieldИ например чтобы получить фото из UserInfo я создал прокси-класс от User добавил свой метод туда и в нем делаю такую какашку:
class UserImg(User):
class Meta:
proxy = True
def get_photo(self):
ulogin = ULoginUser.objects.get(user = self.id)
ulogin_info = UserInfo.objects.get(ulogin = ulogin.id)
if ulogin_info.photo:
name, ext = str(ulogin_info.photo).split('.')
else:
return ''
return u"/media/user/avatar/%s_45x45_rounded.%s" %(name, ext)
Только в этом случае я легко начинаю работать с данными из таблицы UserInfo.Подскажите, я сильно завернул? Может просто нужно было в UserInfo сделать models.ForeignKey(User)чтобы был быстрее доступ? Или с моим подходом потерь производительности нет и можно продолжать через 3колена делать?В целом я собираюсь сильно накрутить прокси класс написать ему кучу методов к данным вспомогательным, все равно с нима работать нужно будет. И уже везде работать не с User, а его прокси-классом.В целом я правильно мыслю?, или я чего-то не учёл, не хотелось бы потом упереться в камень неправильного подхода и переписывать всё заново.Спасибо.