diff --git a/CHANGELOG.md b/CHANGELOG.md index c27e3225..7eb1fe47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ - Интеграция с функцией `get_with_stat` для единого подхода к получению статистики ### Исправлено +- Ошибка "'dict' object has no attribute 'id'" в функции `load_shouts_search`: + - Исправлен доступ к атрибуту `id` у объектов shout, которые возвращаются как словари из `get_shouts_with_links` + - Заменен `shout.id` на `shout["id"]` и `shout.score` на `shout["score"]` в функции поиска публикаций - Ошибка в функции `unpublish_shout`: - Исправлена проверка наличия связанного черновика: `if shout.draft is not None` - Правильное получение черновика через его ID с загрузкой связей diff --git a/docs/auth.md b/docs/auth.md index d87781aa..b7a17039 100644 --- a/docs/auth.md +++ b/docs/auth.md @@ -306,7 +306,7 @@ async def create_article_example(request: Request): # Используем Reque """ user: Author = request.user # request.user добавляется декоратором @login_required - # Проверяем право на создание статей (метод из модели auth.orm.Author) + # Проверяем право на создание статей (метод из модели auth.auth.orm) if not user.has_permission('articles', 'create'): return JSONResponse({'error': 'Недостаточно прав для создания статьи'}, status_code=403) diff --git a/resolvers/reader.py b/resolvers/reader.py index b45882eb..6b8ed16d 100644 --- a/resolvers/reader.py +++ b/resolvers/reader.py @@ -473,8 +473,8 @@ async def load_shouts_search(_, info, text, options): q = apply_sorting(q, options) shouts = get_shouts_with_links(info, q, limit, offset) for shout in shouts: - shout.score = scores[f"{shout.id}"] - shouts.sort(key=lambda x: x.score, reverse=True) + shout["score"] = scores[f"{shout['id']}"] + shouts.sort(key=lambda x: x["score"], reverse=True) return shouts return [] diff --git a/services/common_result.py b/services/common_result.py index 6d73d133..693512a0 100644 --- a/services/common_result.py +++ b/services/common_result.py @@ -1,7 +1,7 @@ from dataclasses import dataclass from typing import List, Optional -from orm.author import Author +from auth.orm import Author from orm.community import Community from orm.reaction import Reaction from orm.shout import Shout diff --git a/tests/test_drafts.py b/tests/test_drafts.py index a5f2b75e..0dfa9d63 100644 --- a/tests/test_drafts.py +++ b/tests/test_drafts.py @@ -1,6 +1,6 @@ import pytest -from orm.author import Author +from auth.orm import Author from orm.shout import Shout diff --git a/tests/test_reactions.py b/tests/test_reactions.py index 147984d4..0d641c2e 100644 --- a/tests/test_reactions.py +++ b/tests/test_reactions.py @@ -2,7 +2,7 @@ from datetime import datetime import pytest -from orm.author import Author +from auth.orm import Author from orm.reaction import ReactionKind from orm.shout import Shout diff --git a/tests/test_shouts.py b/tests/test_shouts.py index 8544b4d2..07e517ef 100644 --- a/tests/test_shouts.py +++ b/tests/test_shouts.py @@ -2,7 +2,7 @@ from datetime import datetime import pytest -from orm.author import Author +from auth.orm import Author from orm.shout import Shout