Убираем дублирование с помощью тегов

у меня появился вопрос: есть код(вьюха), я создал теги для него, как при помощи тегов убрать дублирование?

Теги:

from django import template

from recipes.models import Follow, Recipe

register = template.Library()


@register.filter(name='extend_context')
def extend_context(context, user):
    context['purchase_list'] = Recipe.objects.filter(purchase_by=user)
    context['favorites'] = Recipe.objects.filter(favorite_by=user)
    return context


@register.filter(name='add_subscription_status')
def add_subscription_status(context, user, author):
    context['is_subscribed'] = Follow.objects.filter(
        user=user, author=author
    ).exists()
    return context

Код вьюхи:

@require_GET
def recipe_detail(request, recipe_id):
    recipe = get_object_or_404(Recipe, id=recipe_id)
    context = {
        'recipe': recipe,
    }
    user = request.user
    if user.is_authenticated:
        add_subscription_status(context, user, recipe.author) - дублирование
        extend_context(context, user) - дублирование
    return render(request, 'recipes/recipe_detail.html', context)

@require_GET
def profile(request, user_id):
    author = get_object_or_404(User, id=user_id)
    tags = request.GET.getlist('tag')
    recipe_list = tag_filter(Recipe, tags)
    paginator = Paginator(recipe_list.filter(author=author), PAGINATE_BY)
    page_number = request.GET.get('page')
    page = paginator.get_page(page_number)
    context = {
        'tags': Tag.objects.all(),
        'author': author,
        'page': page,
        'paginator': paginator
    }
    user = request.user
    if user.is_authenticated:
        add_subscription_status(context, user, author) - дублирование
        extend_context(context, user) - дублирование
    return render(request, 'recipes/profile.html', context)
Вернуться на верх