Django fake model instanciation - No testunit [duplicate]

Я хочу знать, могу ли я создать пустую поддельную модель только с id записью базы данных. Я нашел способ создания макета модели, но мне нужно решение, удобное для производства.

Объяснение моей проблемы :

Я хочу перечислить настройки пользователей, которые выбрали отображение в публичном режиме :

user_displayed_list = UserPublicProfile.objects.filter(
    displayed = True,
    ).only(
        'user_id',
        'is_premium',
    )

user_settings_list = []
for user_displayed in user_displayed_list:
    # I have to send user Instance to the next method :
    user_settings = self.get_user_settings(user_displayed.user)
    user_settings_list.append(user_settings)
    # But ’user_displayed.user’ run an new SQL query

Я знаю, что могу улучшить свой кверисет как :

user_displayed_list = UserPublicProfile.objects.filter(
    displayed = True,
    ).select_related(
        'user'
    ).only(
        'user',
        'is_premium',
    )

Но это делает бесполезное соединение, потому что мне нужно только поле пользователя id в get_user_settings():

Метод get_user_settings() (это может помочь понять контекст):

def get_user_settings(self, user)
    user_settings = UserSettings.objects.get(user = user)
    return user_settings

В реальном проекте этот метод выполняет больше функций для бизнеса

Есть ли способ создать экземпляр модели User с заполненным только id полем?

Я не хочу использовать пользовательский пустой класс, созданный для этой цели. Мне действительно нужен объект User.

Я не нашел ничего для этого. Если это возможно, то я мог бы использовать его таким образом :

for user_displayed in user_displayed_list:
    FakeUser = User.objects.create_fake(id = user_displayed.user_id)
    # I have to send user Instance to the next method :
    user_settings = self.get_user_settings(FakeUser)
Вернуться на верх