def METHOD_NAME(
    request,
    queryset,
    value_list,
    edit_url=None,
    edit_url_attr='pk',
    filter_form=None,
    template='seeddb/list.html',
    extra_context=None,
    add_descriptions=False,
    add_related=None,
):
    """Renders a Seed DB list.
    Parameters:
     - request: HttpRequest object from Django
     - queryset: A queryset containing all objects that should appear in the
                 list.
     - value_list: Tuple with field names used in Django's `value_list`
                   queryset method.
     - edit_url: Named URL to the edit page.
     - edit_url_attr: Attribute used to make the URL to the edit page.
     - filter_form: Form used to filter the queryset.
     - template: Path to the template used.
     - extra_context: A dictionary containing all additional context that
                      should be used in the template.
    """
    if not extra_context:
        extra_context = {}
    queryset = _filter_query(filter_form, queryset)
    if not edit_url:
        rows, datakeys = _process_objects(queryset, value_list)
    else:
        rows, datakeys = _process_objects(queryset, value_list, edit_url, edit_url_attr)
    labels = _label(queryset.model, value_list, datakeys)
    if add_descriptions:
        _add_descriptions(rows, queryset)
    if add_related is not None:
        add_related(rows)
    context = {
        'object_list': rows,
        'labels': labels,
        'filter_form': filter_form,
        'sub_active': {'list': True},
    }
    # Update extra_context with context.
    # Doing it this way makes sure that the context dictionary overrides any
    # user-supplied data, not the other way around.
    extra_context.update(context)
    return render(request, template, extra_context)